私はPrologを初めて使用し、理解できないことに遭遇しました。
これは私のコードです:
:- dynamic user/3.
user('id', 'Name', 20).
changeAge(Id, NewAge) :-
user(Id, Name, _),
retract(user(Id,_,_)),
assert(user(Id,Name,NewAge)).
データベース内のユーザー情報を更新するには、
changeAge/2
次の 3 つの手順を実行します。
- を使用して、正しいレコードを検索し
user/3
ます。 - を使用して、データベースから一致するレコードを 1 つ削除します
retract/1
。 - を使用して、更新された新しいレコードをデータベースに挿入します
assert/1
。
これは私のコンソール出力です:
1 ?- user('id', _, Age).
Age = 20.
2 ?- changeAge('id', 25).
true.
3 ?- user('id', _, Age).
Age = 25.
4 ?- changeAge("id", 30).
false.
5 ?- user('id', _, Age).
Age = 25.
二重引用符が私に与えられるのに (行 4) 一重引用符が私に与えるのはなぜですかtrue
(行 2 false
)?