5
学校の割り当ての問題を解決する際に、私が1つのアイテムのように1つのアイテムリスト(1つのアイテムのスタック)を扱っていた間違いを発見しました。Prolog:単品と単品のリスト
48 ?- 1 is [1].
true.
49 ?- -1 is [-1].
ERROR: is/2: Type error: `character' expected, found `-1'
50 ?- 0.66 is [0.66].
ERROR: is/2: Type error: `character' expected, found `0.66'
同様の挙動は=を使用して行われます:=/2の代わりに/ 2である私は、私は奇妙な何かに気づいたが、さらにテストでは、私の問題を解決しました。だから何らかの理由で、単一の項目リストは単一の項目と同じだとみなされますが、負でない整数についてのみです。
他の何よりも好奇心...これはなぜ誰が知っていますか?
ありがとうございます!
ありがとうございます!それは答えと思われます。「97は」。本当です。しかし、たぶん私はばかだと思うかもしれませんが、そのマニュアルページに何が記述されているのかを本当に理解することはできません。述語(min、max、absなど)は私のために存在していないように見えますが、なぜすべての引数に+記号が付いているのかわかりません。そして、私はなぜこのQに関係する述語が2つの議論を持つドットに過ぎないのか分かりません。私はそのようなものを使っていません。 – The111
そのページはSWI-Prologに関するページです。おそらくあなたの実装はmin、maxなどをサポートしていませんか?いくつかの引数の前には '+ 'があり、これはモードを示しています。つまり、' + 'は束縛された(そして可変ではない)ことを意味します。最後に、リスト構文['a、b]'は '。/ 2'リストコンストラクタ述語の省略形です(実際は'。(a、。(b、[]))))。あなたの場合、 '[1]'のような単一の整数のリストは '。(1、[])'の省略形です。 – sharky
ええ、大きな説明...私は今それを得たと思います。再度、感謝します。 – The111