私はこのコードを持っています:
[a,b,[]]=[First,Second,Third|Fourth].
次の出力が得られます。
First = a, Second = b, Third = Fourth, Fourth = [].
Third
に配属された経緯を知りたいFourth
です。
Prolog リストの実装方法の詳細については、https ://stackoverflow.com/a/7559044/467473 の私の回答を参照してください。
基本的に、プロローグ リストは単純なデータ構造です。空リストはアトムで表され[]
ます。空でないリストは構造体./2
です。この構造体の左の引数はリストの先頭です。右の引数は、別のリスト (空のリストまたは空でないリスト ( )) であるリストの末尾です。[]
./2
わかりやすいリスト表記は、これに加えて単なる構文糖衣です。式[H|T]
は式 とまったく同じ.(H,T)
です。[a,b|T]
と全く同じ表現です.(a,.(b,T))
。そして、式[a,b,c]
は とまったく同じ.(a,.(b,.(c,[])))
です。