04/01/20 03:52
>>324
> > 述語はむしろ枝のほうに定義されていると考えるのが自然。
> > つーか、普通はそう定義されている。
> なのは同意する。
> ただし述語はルート以外の節にも入るので、
ちょっと待って・・・枝ってのはarcのつもりで書いたのだがなあ。
述語が節ではなく各枝に定義されている以上、
> ただし述語はルート以外の節にも入るので、
の意味が全然わからない。節に入るのではなく、枝(arc)に入るんだから。
まあいいや、もっと簡単な例を出してみようか。二分決定木の特殊例。
ある固定長の入力ビット列X={x0, x1, x2, ..., xn}について、
根および各節において、Xから先頭要素を破壊的に取り出して、
そのビットを判定する操作をしたとする。
この二分決定木は、根と節がn段で、その先にTrue/Falseの枝がある。
これで全ての入力に対してTrue/Falseを返すことができる。
普通はここで二分決定木を簡約しにかかるわけだが、ここではそのまま使う。
さあ、この二分決定木、実はLISPのリストで構成することができる。
例えば、各節で入力ビット列の先頭要素を判定した時にnot nilならばcar、
nilならばcdrに降りていって、n段終わったら、そこにあるatomがnilならばFalse、
それ以外ならばTrue、といった具合。
ね、LISPのリストは木構造でしょ?
ドットを使ってnil無しのcons作るのにも意味あるでしょ?