2010/02/09

condの=>

以前@aharisuさんから聞いたことあったな。これは忘れる。忘れるというか憶えれない。
(cond (#f => (lambda (b)
               (not b)))
      ((list 'a 'b) => (lambda (a)
                         (display (cadr a))))
      (else 0))
; -> b#<undef>
(test expr …)
(test => expr)
(test guard => expr)
(else expr expr2 …)
 
2番目の形式であれば、exprがまず評価されます。 exprは引数をひとつ取る手続きを返さねばなりません。 続いて、testの結果がその手続きに渡され、その手続きの戻り値がcond形式の 評価値となります。

プログラミングGauche

0 件のコメント:

コメントを投稿