私はcommon-lispへの初心者のほうがずっと楽しかったです。しかし、私はハイパースペックや他の場所の文書がかなり明確であるので、マッパーとマップカンの違いを知っていると思います。原子上でのMapcanの動作
しかし、関数mapcanがリストを呼び出すと、要素はリストではなくアトムに評価されます。 mapcanはnconcを使ってリストを追加するので、リストがなければエラーが発生すると予想していました。
しかし、私は
(mapcan (lambda (x) (+ 2 x)) '(1 2 3 4))
をしようとした場合には、SBCLとCLISPに '6' と評価されます。 (この例は実用的ではないかもしれませんが、私は興味があります)値を返すのは単純なエラーよりも良いかもしれませんが、nconcにリストがない場合は、最後の値を返すmapcanについて何かを見つけることができます。
この現象が発生する理由はありますか?
LispWorksとGCLからエラーが通知されます。 –