Prolog 写経記 その 34 tail/2
(ほぼ) 毎日淡々と Prolog を写経します.元ネタはこちら.
- 作者: ボグダンフィリピッチ,中島誠,伊藤哲郎
- 出版社/メーカー: 海文堂出版
- 発売日: 1990/08
- メディア: 単行本
- 購入: 4人 クリック: 33回
- この商品を含むブログ (68件) を見る
tail/2
を写経します.解説
tail(List, T)
はT
をList
の尾部に具体化する.
リストの尾部ってのは 2 番目以降の要素からなるリストのこと.
なので,Java でいうと... list.sublist(1, list.size())
って感じか.
モード
tail(?, ?).
ふむ.
定義
では,こいつの定義を写経しませう.
tail([_ | T], T).
お揃の head/2
同様,なくても大して困らさそうなくらいの単純さ.
注記
tail/2
は空リストに適用された場合,失敗する.この述語は,他の処理で完全に具体化されるようなリストを,部分的に具体化するのに用いることもできる (最後の例参照).
head/2
に書いてあったことと同じ〜.
例
では使用例を写経しませう.
3 ?- tail([a, b, c, d], T). T = [b, c, d] Yes 4 ?- tail([1], X). X = [] Yes 5 ?- tail([], Empty). No 6 ?- tail(L, [8, 1, 5]), head(L, 0). L = [0, 8, 1, 5] Yes
ふむ.
特にどうという事もなく.まぁ,head/2
と同じようなものだしね.
これで「1 章 リスト処理」は終了です.1か月半ほどかかりました.結構長いなぁ.
でもでも,まだ半分にも達してないんですよね.年内に終われる... のか?
まぁ,ゆっくり気長にいきませう.