使用 Prolog 读取输入
Reading in input using Prolog
很抱歉,如果这很明显,但我最近一直在学习序言,并试图读入数据以用于推荐系统。
gifter :- write('how much money? '), read(money), nl,
assert(will_spend(money)),
write('Is the giftee classy? '), read(classy), nl.
之前的代码应该读入用户希望花费的金额,然后询问受赠人的性格,然而,只询问了第一个问题。它似乎到达了新行但没有断言谓词:
?- will_spend(30).
[WARNING: Undefined predicate: will_spend/1']
这是为什么,我做错了什么?在此先感谢您的帮助。
gifter :- write('how much money? '), read(Money), nl,
assert(will_spend(Money)),
write('Is the giftee classy? '), read(Classy), nl,
assert(classy :- Classy = 'yes').
然后,
?- gifter.
how much money? 127.
Is the giftee classy? yes.
true.
?- classy.
true.
?- will_spend(X).
X = 127.
记住 read
需要句号和换行符;另外,变量应该大写。
很抱歉,如果这很明显,但我最近一直在学习序言,并试图读入数据以用于推荐系统。
gifter :- write('how much money? '), read(money), nl,
assert(will_spend(money)),
write('Is the giftee classy? '), read(classy), nl.
之前的代码应该读入用户希望花费的金额,然后询问受赠人的性格,然而,只询问了第一个问题。它似乎到达了新行但没有断言谓词:
?- will_spend(30). [WARNING: Undefined predicate: will_spend/1']
这是为什么,我做错了什么?在此先感谢您的帮助。
gifter :- write('how much money? '), read(Money), nl,
assert(will_spend(Money)),
write('Is the giftee classy? '), read(Classy), nl,
assert(classy :- Classy = 'yes').
然后,
?- gifter.
how much money? 127.
Is the giftee classy? yes.
true.
?- classy.
true.
?- will_spend(X).
X = 127.
记住 read
需要句号和换行符;另外,变量应该大写。