私はこのようになりますPrologの句を持っている:句の本文をリストに変換するには?
私はこのようなリスト(L言う)に変換したいinorder :- true(cell(1, 1, 1)), true(cell(1, 2, 2)), true(cell(1, 3, 3)),
true(cell(2, 1, 4)), true(cell(2, 2, 5)), true(cell(2, 3, 6)),
true(cell(3, 1, 7)), true(cell(3, 2, 8)), true(cell(3, 3, b)).
:
L = [cell(1, 1, 1), cell(1, 2, 2), cell(1, 3, 3),
cell(2, 1, 4), cell(2, 2, 5), cell(2, 3, 6),
cell(3, 1, 7), cell(3, 2, 8), cell(3, 3, b)].
開始する明白な方法はそうされるように:
clause(inorder, Body).
しかし、それが生成します。
Body = (true(cell(1, 1, 1)), true(cell(1, 2, 2)), true(cell(1, 3, 3)), true(cell(2, 1, 4)), true(cell(2, 2, 5)), true(cell(2, 3, 6)), true(cell(3, 1, 7)), true(cell(..., ..., ...)), true(cell(..., ..., ...))).
私は "trues"をどのように抽出するのか本当にわからないのですか? Prologの専門家からの提案はありますか?
ありがとうリードオンリーメンバー、同様に行うことができます。不自然なコードの理由は、http://www.ggp.org/(私がスタンフォードの論理学者Michael Geneserethが提供するオンラインコースを通じて発見した本当に楽しい話題)で説明されているように、一般的なゲームプレイのためのPrologプレーヤーを書くことです。私が使用している例は、GGPの8つのパズルからです。ルールはGGP(幸いなことにPrologの方言)に書かれていて、本当の(ベース)を使っているかどうかについては何も言いません。 – joeblog