[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/09 13:46 / Filesize : 290 KB / Number-of Response : 990
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

CommonLisp Scheme Part10



192 名前:189 mailto:sage [04/02/22 22:00]
>>191
let の変数定義をマクロ展開の結果に置き換えるマクロを書くわけですね。
勉強になります。alist-bind がレキシカルコンテキストを参照できるので、
こちらの方が優れてますね。その代わり、vars に与える変数一覧を事前に
与えないといけないので、今やりたい用途には使えないですね。

いま欲しいのは、destrucuring-bind の複数版で、1個の値に対して
パターンを複数与えることができるようなマクロです。最初のパターンに
うまくマッチしなければ次のパターンを試し、マッチしたパターンがあれば
そこで変数を束縛して、対応する式を順次評価して最後の式の値を返すと
いうような物です。最後のパターンにもマッチしなかったばあいは nil と
いうことで。
(let ((x 2))
 (dbind* (list (+ 3 4) 5)      ; 最初に評価して(7 5)を得る
  ((a b c) (list a b c))       ; マッチしないので実行されない
  ((a b) (incf x) (list a b x))))   ; (7 5 3) になる
というような dbind* がうまくできなくて困ってます。
まず値を集めて、後から展開するという方針が間違ってるのかもしれません。
どうしても評価のレベルが一致しないんですよね。






[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<290KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef