好的,我得到了这两个谓词 hangman
和 graphics
fail([]).
hangman:-
getPhrase(Ans),
!,
write('Welcome to hangman.'),
nl,
fail(FailedList),
graphics(FailedList), %<--- The call is made here.
name(Ans,AnsList),
makeBlanks(AnsList, BlankList),
getGuess(AnsList,BlankList, FailedList).
graphics(FailedList):-
length(FailedList, L),
L == 0,
write('-----------'), nl,
write('|'), nl,
write('|'), nl,
write('|'), nl,
write('|'), nl,
write('|'), nl,
write('|'), nl,
write('|'), nl,
write('|'), nl,
write('/\'), nl.
为什么我会收到错误:
ERROR: hangman/0: Undefined procedure: graphics/1
?请注意,如果我将谓词
graphics
放在 hangman
中的注释中,我的程序运行良好。 最佳答案
write('/\'), nl.
在最后一行,您使用
\'
转义结束引号。将其更改为: write('/\\'), nl.
顺便说一句:@Mog 在我看评论之前写了答案,我测试了它,现在它找到了 graphics/1。
关于prolog - SWI-Prolog 中的未定义过程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10799340/