【入門】Common Lisp その6【質問よろず】at TECH
【入門】Common Lisp その6【質問よろず】 - 暇つぶし2ch744:デフォルトの名無しさん
09/11/17 08:50:05
>>740
えーとまず、back quote 式は read 時に、指定された通りのリストを構築する式に展開される。
`(,x y)であれば、たとえば scheme 風に(qq (unquote x) y)といった感じになるかもしれない。
ただし、この展開された式がどのようなものになるかは処理系に依存する。

で、これに'をつけると、その展開された式を quote したことになる。
'`(,x y) なら(quote (qq (unquote x) y)) とかになる。

それが flatten に渡されるわけだから、上記のように展開されていた場合には結果は (qq unquote x y) となる。

と、ここで話が終われば簡単なんだけれど、
repl に表示する式が(この場合での qq のように)back quote 式の展開形であると判断する手掛かりがある場合、
処理系によっては back quote 式に戻して表示しようとする。
しかし flatten の戻り値の場合には当然 back quote 式の展開形としては不適切なものになっているはずなので、
なにやらぶっこわれた back quote 式が表示されることになる。
どうぶっこわれるかは処理系依存。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch