ADP
Programming Language ADP

Japanese

Freecode

Sourceforge.net

SourceForge.JP

Loading

リスト

リストの形式(1)カンマ区切り
リストは以下のように項を ,(カンマ)で区切って、[]で囲みます。

・例1 カンマ区切りのリスト
  [ "apple", "orange", "melon" ]

リストの形式(2)縦棒区切り
リストの区切りには ,(カンマ)以外に | (縦棒)で区切る形式もあります。
|(縦棒)はリストを先頭の要素(lispでいうところのcar)とリストの2番目以降の要素(cdr)に分ける。

例1のカンマ区切りのリストを縦棒区切りに変換すると以下のとおりとなる。

・例2 縦棒区切りのリスト
  [ "apple" | ["orange" | ["melon"]] ]

リストの要素の走査

|(縦棒)区切りは、ユニフィケーションを合わせて用いると以下ように要素を1つずつ検索できる。

・例3(allprint.p) リストの要素を1つずつ表示させる。
+allprint([]),!;
+allprint([$x|$y]),printn($x),allprint($y);

,allprint(["apple", "orange", "melon"]);

・実行例
D:\sample>adp allprint.p
apple
orange
melon

*リストの要素を1つずつ取り出す述語にeachがあります。

・例4(allprint2.p) each述語の使用例
+allprint($l),each($l,$x),printn($x),next;
,allprint(["apple", "orange", "melon"]);

・実行例
D:\sample>adp allprint2.p
apple
orange
melon


Powered by ADP.