【入門】Common Lisp その7【質問よろず】
■ このスレッドは過去ログ倉庫に格納されています
0357デフォルトの名無しさん
2010/10/09(土) 04:11:44あと気になったこと色々。
その条件のときだけ何かしたい、って場合は、ifよりもwhenを使う方が意図が分かり易い。
場合で返る値を変えたい場合はif。場合で処理を変えたい場合はcond(condはprogn要らない)。
printしたいだけならconsすると勿体無い。#'(lambda (x y) (format t "(~a ~a)" x y))とかで良い。
新しくコンスセルが作られちゃうので、メモリが無駄になるし遅くなる。
(cons ... nil)ってのはリストを作りたいと思うんだけど、(list ...)で良い。さらに言えば、順番関係無い、
あるいは最後にリストを反転して良いなら、appendは(cons ... list)で良い。pushってのもある。
シンボルの比較ならeqで良い。equalpは色々な物を比較できるけど遅い。
そこでそういう風にsetqするとグローバルな変数が誕生する。letの使用を検討すべき。
実際のプログラムでは、探した組み合わせをどうこうしたい場合がほとんどなので、
どうせなら組み合わせをリストとかで返したい。
以上、分かるところだけ直すと良いと思う。多少は先生の覚えがめでたくなるはず。
■ このスレッドは過去ログ倉庫に格納されています