Visual Prolog 8抛出错误c504:表达式的类型为'() - > :: char procedure',它与':: char'类型不兼容。
main.pro
implement main
open core, console
class predicates
цикл : ().
print : ().
clauses
цикл().
print() :-
console::initUtf8(),
цикл,
C = readChar,
/* Читать символ и связывать его с переменной C */
write(C),
C1 = convert(char, C),
C2 = convert(char, '\r').
C1 = C2.
/* Является ли введенный символ возвратом каретки? fail, если нет */
run() :-
цикл,
fail.
run() :-
succeed.
% place your own code here
end implement main
goal
mainExe::run(main::run).
如何解决?
答案 0 :(得分:3)
您似乎有错误:
print() :-
....
цикл,
C = readChar, % <<-------
你应该像这样写
C = readChar(),
在手册中显示searching for readChar
,其中可以看到建议的用法为
_ = console :: readChar()。
似乎错误消息表明相同:readChar
&#34;是() -> char
类型的过程。&#34; ,而非&# 34; char
&#34; 。您的C
是char
。要从程序中获取结果,我们通常需要运行它(这&#34;运行&#34;与代码中的run
无关。)