- 5.3 Segment Pattern Matching
- リストを処理していく関数というのは、なんというか、リストの要素を語とする有限オートマトンを処理していくみたいな感じなんだな。
- で、condなどによる分岐は非決定性みたいだったり。
- これでパターンマッチャーができた。リストの正規表現機構を自前でつくったような感じだな。
- 5.4 The ELIZA Program: A Rule-Based Translator
- パターンマッチ、という手法と、ルールベーストランスレータ、という手法。この章はこれらの説明につきる感じ。
- これ、かっこいいなぁ。
(defun use-eliza-rules (input)
"Find some rule with which to transform the input."
(some #'(lambda (rule)
(let ((result (pat-match (rule-pattern rule) input)))
(if (not (eq result fail))
(sublis (switch-viewpoint result)
(random-elt (rule-responses rule))))))
*eliza-rule*))
おお、これで5章まで終わった。現在174P。めざせ200P越え。
次回は、Chapter 6 Building Software tools。
0 件のコメント:
コメントを投稿