シンプルなプログラムがうまくいかないのはなぜですか?Prologのシンプルな四角形プログラム
main :-
squares([1,2,3,4,5], L),
writeln(L).
squares([H|T], Outl) :-
Sq is H*H,
squares(T, [Sq|Outl]).
squares([], []).
出力は次のようになります。
?- main.
false.
は役立ちません(squares([H|T], Outl)
に)[Outl]
でOutl
を交換します。
代わりに=
と#=
を使用するか、is
を使用しても助けになりませんでした。
squares([], [])
の代わりにsquares([], P)
がありませんでした。
squares([H|T],[Sq|Outl]):-
Sq is H*H,
squares(T,Outl).
書くべきあなたが
squares([H|T],Outl):-
Sq is H*H,
squares(T,[Sq|Outl]).
SQは見当違いで書かれているもので
がそれですあなたのシステムで作業していますか?私には、それは与えている:? - 四角([1,2,3,4,5]、L)。 L = [1 | _G1159]。 – rnso
はい、動作します。 Out1をOutlに変更する必要があります(文字lではなく番号1)。ありがとう。 – rnso
ありがとう、私は私の答えを編集する。 – joel76