cutの使いかた
Gaucheで、
(map (lambda (x) (* x x)) '(1 2 3))
をcutを使うなら、どう書けばいいんだろう。
cut内で特定の引数を2回以上使いたいってことなんだけど。
(let ((sq (lambda (x) (* x x)))) (map (cut sq <>) '(1 2 3))) ;;pa$を使えばこう ;;(map (pa$ sq) '(1 2 3)))
うーん。。。
たとえば「引数の2番目を2回使う」というのをcutだけで表現できないかな。
正規表現の$1みたいなのがあればいいんだけど。
おとなしくlambda使えばいいか。
あとGaucheにはHaskellの$があるらしい。
http://d.hatena.ne.jp/SaitoAtsushi/20080803/1217772372
http://practical-scheme.net/wiliki/wiliki.cgi?Gauche%3a%24
$*はapplyもするみたい。まだ挙動よくわかってないけど
Haskellの$はSICP読書会でujihisaさんが言ってたなぁ、とふと思い出した。