- 974 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 01:42:01 ]
- >>971
(define-macro (return-from% name . result) `(,name ,@result)) (define-macro (block% name . body) `(call/cc (lambda (,name) ,@body))) (define-macro (define% name . body) (if (symbol? name) `(define ,name (block% ,name ,@body)) `(define ,(car name) (block% ,(car name) (lambda ,(cdr name) ,@body))))) (define% (test1 x) (if (not (number? x)) (return-from% func #f)) x) ;; (test1 1) => 1 (test1 'a) => #f まあ、つまり見たまま。
|

|