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)