2017-11-05 17 views
4

Visual Prolog 8でエラーが発生しましたc504:式に '() - > :: char procedure'という型があり、 ':: char'型と互換性がありません。Prolog型が互換性がありません

はそれを修正するためにどのように

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). 

をmain.pro?

あなたがここでエラーを持っているように見える
+1

NB。関連するように見える["Visual Prolog 8 Language Reference"](http://wiki.visual-prolog.com/index.php?title=Visual_Prolog_8_Language_Reference)があります。 –

+0

エラーメッセージは、エラーが発生した行番号を示していますか? 'main.pro(x、y)'のようなエラーメッセージが表示されるはずです。 'x'は行、' y'は文字の位置です。 – lurker

答えて

3

:1が

として提案利用状況を見ることができます

print() :- 
     .... 
     цикл, 
     C = readChar,  % <<------- 

あなたは手動でsearching for readCharとしてこの

 C = readChar(),

のようにそれを書く必要があります明らかに、

_ = console :: read Char()。

は、エラーメッセージが同じことを示唆しているように見える:readChar「タイプ() -> charの手順です。」ではなく、"a char"です。 Ccharです。結果を得るためには、通常は実行する必要があります(この「実行」はコード内でrunとは無関係です)。

関連する問題