- 464 名前:デフォルトの名無しさん mailto:sage [2007/05/27(日) 23:49:36 ]
- syntax-caseで書くならこんなカンジか?
(define-syntax define& (lambda(x) (syntax-case x () ((k sym obj) (with-syntax ((s (datum->syntax-object (syntax k) (eval (syntax-object->datum (syntax sym)) (interaction-environment))))) (syntax (define s obj))))))) petite chez schemeで試してみたが、こういうテストケースでは動くことを確認した。 (define& (string->symbol (string-append "a" "b")) 1) ab ;-> 1 結局のところ、今はschemeに足りないところがあるのはそのとおりだと思う。 でもな、完成されたものを使うだけってつまらないと思うわけ。 マクロに関しても色んな提案があってそれぞれ細かい部分で利点も問題点もかかえてて、 それがどう収束していくかってなかなか面白いことじゃないか。 ま、仕事で使うならそうもいってられんのだろうが。
|

|