2010/08/12

syntax-rules: fluid-let*

なんのことはありません。fluid-let を使って fluid-let* を書くわけですから、let を使って let* を書くのと変わりません。

;; fluid-let*

;; ;; example
;; (define-values (a b c)
;;   (values 1 2 3))

;; (define (a+b+c)
;;   (+ a b c))

;; (a+b+c)
;; ;; 6

;; (fluid-let* ((a 100)
;;              (b (* a 2))
;;              (c (+ a b)))
;;             (a+b+c))
;; ;; 600

つまり、以下のコードのようになります。

そうなると、こういうのが欲しくなります。(このコードは動かないと思います。)

syntax-rules でこういうの書くにはどうしたら良いんだろう。。たぶん、... のところがダメなんじゃないかとは思うのですが・・・。
プログラミングGauche

0 件のコメント:

コメントを投稿