私はプロローグに不慣れで、if/elseステートメントと再帰をどのように使用できるかを理解しようとしています。説明のために、私は簡単なプロローグプログラムを書きました。プログラムは役に立たない(その機能は役に立たないという点で)が、それは私の問題を説明するのに役立つ。プログラムはリストを取得し、リストの先頭を調べて、それが最後の要素であるかどうかを確認します。そうでない場合は、一時リスト変数にヘッドを追加し、リストのテールを使用してプログラムを再帰的に実行します。最後にリストを出力する必要があります。プログラム:
gothrough([H|T], B, C):-
append(B,H,B),
( (T == [])
-> C=B
; gothrough(T, B, C)
).
呼び出し:gothrough([sample, phrase, here], [], C).
期待される出力:C = [sample, phrase, here]
現在の出力:no
私が間違っていることについて何か助けはありますか?
ありがとう!