(defmacro when* (&body body) `(if (progn ,@body) nil)) とかすれば…ってそもそもスタイル上の問題だしなぁ
2010-10-26 16:20:17shiro: @nitro_idiot whenとformatの話はわからなくもないけれど、ちょっと特殊な例という気もする。formatしたい値が式になってたら、一度letで受けなくちゃならなくて、 http://bit.ly/a84aaK
2010-10-26 16:21:07shiro: 実際 (let ((var <式>)) (副作用 var) var) というのは非常によく出会うので、Gaucheでは (rlet1 var <式> (副作用 var)) と書けるようにしてしまった。 http://bit.ly/daUFpz
2010-10-26 16:22:03(び): そういえば when/ や unless/ は and的な動作するようにしたのを今頃思い出した http://bit.ly/cLZpX0
2010-10-26 16:22:05shiro: まあ何が特殊かは人によるから、そこが言語設計の難しいとこだけど。 http://bit.ly/d4KJUZ
2010-10-26 16:24:44cut-sea: あったあった > when/ unless/ http://bit.ly/96gErP
2010-10-26 17:39:48shiro: kahuaはモナド使いまくりだからわかりにくい面もあるよな。ドキュメントの出力って意味では副作用だけど、実際の出力は式の評価時よりも後で起きてるから、単純に戻り値との関係で判断できない。 http://bit.ly/aQ4MTl
2010-10-26 17:55:04.@golden_lucky SICP の脚注で十分ではないですか? Haskeller からみたら、False と [] は別れていて当然ですね。
2010-10-26 20:39:06when/, unless/ってこれか http://www.kahua.org/show/doc/Modules/kahua.elem#H-18e1gnfsw0jyk
2010-10-26 21:50:52@kazu_yamamoto Haskellだと、関数をコーディングする前にプログラマが型を決めているので、とりあえず返す値に悩むことは原理的にない?
2010-10-27 10:46:06動的型付けがよいとする立場で、唯一説得力があるなぁと感じたのは、教育のため。コンパイルさえ通らないと、初心者は泣きそうになる。バグがあっても、とりあえず動くことが重要。動かして、いろいろな理解を深めて行く。
2010-10-27 11:08:41あと、重要なのは、プログラミングは書くよりも読む方が難しいってことです。書き手が便利だからという理由で、nil に複数の意味を持たせないでほしい。
2010-10-27 11:12:34とはいえ、プロトタイピングから実用状態まで一気に駆け抜けられるGaucheからそうやすやすと離れられないのであった :)
2010-10-27 11:35:38