結果はtag(N, X)
構造体のリストです.Nは値1,2,3、です。 。 。 Xはリスト要素を表します。たとえば、プロローグにリスト内の各要素をタグ付けし、数値を関連付けたプロシージャを書くにはどうすればいいですか?
?- tagit([wibble,33,junk,phew],L).
L = [tag(1, wibble), tag(2, 33), tag(3, junk), tag(4, phew)]
私はPrologを初めて使用しており、これを完了する必要があります。
結果はtag(N, X)
構造体のリストです.Nは値1,2,3、です。 。 。 Xはリスト要素を表します。たとえば、プロローグにリスト内の各要素をタグ付けし、数値を関連付けたプロシージャを書くにはどうすればいいですか?
?- tagit([wibble,33,junk,phew],L).
L = [tag(1, wibble), tag(2, 33), tag(3, junk), tag(4, phew)]
私はPrologを初めて使用しており、これを完了する必要があります。
あなたは何を知っていますかリストは?
list(X):- X=[].
[]
がリストです。
list(X):- X=[A|B], list(B).
[A|B]
B
がリストである場合は、リストです。
タグリストとは何ですか?
taglist(Y):- Y=[].
[]
はタグリストです。
taglist(Y):- Y=[C|D], C=tag(N,V), taglist(D).
[C|D]
一部N
とV
とC=tag(N,V)
場合タグリストで、D
はタグリストです。
私たちは一緒に2つを入れて1つにまとめることはできますか?はい、できます:
taglist2(X,Y):- X=[], Y=[].
taglist2(X,Y):- X=[A|B], Y=[C|D], ...., taglist2(B,D).
A
とは何ですか? V
とは何ですか?
N
とは何ですか?それは数字です。最初の番号は1です:
number(N,One):- N is One.
次の数は前のものから発見され、
number(N,Prev):- Next is Prev + 1, number(N,Next).
として、我々は一緒に三人を粉砕することはできますか?はい、できます。それを試してみてください、それは楽しいです。
'taglist2(X、Y)を助けてくれてありがとう: - X = []、Y = []。taglist2(X、Y): - X = [A | B]、Y = [C | D]、taglist2(B、D)。 : - taglist2([S、T]、[W、X])。 これは私が試みたものです。これは、2つが結合された単一の配列を返します。私が望むのは二重鎖が返されることです。私が間違っていることはありますか? – Bhawna39
はい、そこに '....'があります。省略されていない実際のコードに置き換えてください。 (そして数字もまたカウントアップされるべきです)。 "二重鎖"については、私はあなたを理解していないし、あなたの質問とは異なって見えます。質問を変えないでください。あなたはそれを持っている場合は新しいものを尋ねる。 –
まあ、それは新しい質問ではありません...しかし、私はプロローグにはあまりにも新しいです。私は一度基本に戻るべきだと思う。ありがとう:) – Bhawna39
ここでは厳しいユーザーがいるようです。どこかについていたので、@WillNessに応答できませんでした。コードを試してみましょう。 – Bhawna39