비어있는 클래스 목록으로 새 학생 레코드를 만들기 위해 대화식으로 입력을 받아들이는 술어를 디자인해야합니다. 또한 studentID가 데이터베이스에 없는지 확인하여 학생이 아직 시스템에 없는지 확인해야합니다. 추가/3 : 입력을 받아 들여 프롤로그에 저장하는 방법
이
이% 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)).
내가지고있어 오류가 정의되지 않은 프로 시저 : 입력을 읽은 후 assertz (학생 ID를 물어 본 후) 어떻게하면이 문제를 해결할 수 있습니까? 코드? 당신의 술어 때문에 addStudent에서
나는 당신의 오류를 장담은'assertz/3' 아니라'assertz' 말한다 패러다임. 문제는 단지 하나의 인자를 요구하는'assertz/1'에 3 개의 인자를주는 것입니다. 나는 당신이 당신의 괄호를 제대로 적용하지 않았다고 의심합니다. 'assertz (student (name ([L, F]), ID, _))'를 시도해보십시오. – lurker