【发布时间】:2017-03-12 12:34:52
【问题描述】:
我需要设计一个谓词,它以交互方式接受输入以创建一个带有空班级列表的新学生记录。我还需要通过检查 studentID 不在数据库中来检查学生是否不在系统中。
这是学生数据库
% name, studentId, course list
student(name(jane, [ann]), 5555, ['CS3230'] ).
输出应该是这样的
?- addStudent.
Student last name: doe.
Student first name: [jim,k].
Student Id: 23123.
true.
这是我的代码
addStudent :- write('Student last name: '),
read(L),
write('Student first name: '),
read(F),
write('Student ID: '),
read(ID),
assertz(student(name([L,F])),ID,_),
not(member(ID,student)).
我收到 ERROR: add/3: Undefined procedure: assertz 读取输入后(询问学生 ID 后) 如何解决此问题以使我的代码正常工作?
【问题讨论】:
-
我敢打赌你的错误是
assertz/3而不仅仅是assertz。问题是您要向assertz/1提供 3 个参数,它只需要一个参数。我怀疑您只是没有正确应用括号。试试assertz(student(name([L,F]),ID,_))。
标签: prolog