Gauche > Archives > 2012/06/06

2012/06/06 02:45:34 UTCyamasushi
#
S式を基本にしたテキストデータ形式を私的に使っていて便利だなと感じています。
#
; 一行単位にS式を書く
(define (write-line x :optional (port (current-output-port)) )
	(write x port) 
	(newline port) 
)
#
Gaucheスクリプトをgrepやsortと組み合わせることができるので面白いです。
#
goshのオプションにS式を順次よんでいきコマンドライン引数で指定したラムダ式に与える、というようなモードがあると面白いですね。
#
readで読んでwriteしなければfilterになり、処理した後でwriteしたならmapとなる。
#
そして、値を文字列としてprintして他の処理にわたす、みたいな。
2012/06/06 04:21:47 UTCshiro
#
少しだけ冗長になりますが gosh -E "generator-for-each λ式 read" とすれば実現できるのでは。
#
最後に-Eexitmo
#
-Eexitも必要か。
2012/06/06 04:41:38 UTCyamasushi
#
あ、そうか。readはジェネレータなんでした。exitもいるんですか?
#
ということは、ジェネレータを使うことでgrepを簡単に表現できるわけですね。
2012/06/06 04:44:00 UTCshiro
#
-EexitつけないとreadがEOFを返した後REPLに入っちゃいます。パイプから読んでる時は入力が尽きたらREPLもEOFをすぐに読むからいいかもしれないけど。
2012/06/06 04:49:38 UTCyamasushi
#
これは基本的にパイプからしか読まないわけなので、問題はないかも。
2012/06/06 07:55:00 UTCshiro
#
(string->regexp "\\/") 問題、小手先で済むかと思ったらもうちょい面倒だった。
2012/06/06 15:04:32 UTCshiro
#
commit 3227761: (string->regexp "\\/") => #/\//, (char-set #\\) => #[\\]
2012/06/06 16:21:24 UTCshiro
#
Javaのlambda式 (JSR335, Project Lambda) って結局正式仕様に入ったんだっけ? まだだっけ? 今のJavaのバージョンさえちゃんと把握してないのでプロジェクトのページを見てもそれが今この瞬間の話なのか既に古くなった話なのか判断できない…
2012/06/06 17:09:51 UTCKei
#
確かJDK8から入る予定のはずです、Javaのlambda式。ちなみに今はJDK7が最新です。
2012/06/06 17:32:16 UTCshiro
#
ありがとうございます。なんかしばらく前から入るだの、やっぱり入らないだの、いややっぱり入る(でもレキシカルクロージャじゃないよ)だのやたら揉めていたので何が何だか良くわからなくなっていたのでした。
2012/06/06 17:54:32 UTCKei
#
記憶が正しければ、単なるインターフェースの糖衣構文になるはずです。なのでクロージャと呼ぶと語弊がある気がします。もちろん、最終的にどうなるかは分からないですが。