short name マクロはschemeに不要なのか。

short nameマクロを以前かいたのだけれど、プログラミングgaucheを読んでいるとdefineで名前を定義してやればよいことに気づく。
defineってタグづけ(束縛?)っぽいかんじ?
lambdaはshor nameマクロ必要そうだけれど。

(define x 1)                                                                    
(define y x)                                                                    
(define z y)                                                                    
(set! y 10)                                                                     
z ; => 1 

へー。

とおもったら、lambdaすらdefineでいけるのか!?!

(define fn lambda)                                                              
((fn (x) 1) 10) ; => 1

あれぇ〜??

lambdaを評価したらsyntaxになっているから、syntaxという実体にfnをバインドしたということになるのか。
なんかarcが要らない気がしてきた。

cut構文使えば1引数ラムダ略式構文 [ + 10 _ ]より柔軟な表現が可能だし。

lambdaの略記をHaskell風に"\"とかにしてみたいけど、エスケープ文字とかぶりそう。
cutの略式は何にしようか。[ + 10 <> ] とやると(cut + 10 <>) に読みかえられると最高なのになぁ。
二種類の括弧が同じ意味なんてもったいない。

(define ^ cut)                                                                  
((^ + 10 <>) 20)  

とかどうよ。正規表現のメカニズムとぶつからなければ定義してみよ。