Gauche > Archives > 2010/08/26

2010/08/26 10:56:02 UTCshiro
#
括弧ゴルフをやってると$をデフォルトで使えるようにしたい誘惑にかられる。
2010/08/26 12:22:11 UTCkoguro
#
括弧ゴルフの場合、srfi-1とsrfi-42もデフォルトで使えるとうれしいかも。
2010/08/26 12:27:29 UTCshiro
#
:; exec gosh -usrfi-1 -usrfi-42 "$0" とか書いとくって手はあるけど、シェルの機能を使ってるから反則だな。
2010/08/26 12:36:52 UTCkoguro
#
あと、CommonLispばりのformatとか使えると便利かと思ったけど、たぶんゴルフ以外には使わなそう。
2010/08/26 12:41:12 UTCkoguro
#
リーダマクロはなくても、evalを使えば任意のSchemeプログラムは括弧6個で書けるのでいいか。
#
(eval (read-from-string "\x28print \"Hello, world\"\x29") (interaction-environment))
2010/08/26 12:43:56 UTCshiro
#
(load-from-port (open-input-string "...")) にすれば4個。
2010/08/26 12:54:32 UTCkoguro
#
さすがに3個以下は無理か。
2010/08/26 13:10:48 UTCkoguro
#
Gaucheのevalの第2引数って、今のところ #f を渡してもエラーにならないんだ。
2010/08/26 13:17:01 UTCshiro
#
モジュールじゃないものが来たら単に無視してカレントモジュールを使うんじゃなかったかな。でもそれに依存しちゃだめよん。
2010/08/26 13:19:42 UTCkoguro
#
いや、使うとしたら括弧ゴルフくらい。
2010/08/26 14:11:13 UTCshiro
#
ああ、括弧2個にできる。 (call-with-input-string "\x28print 'hi\x29" load-from-port)
2010/08/26 15:09:06 UTCkoguro
#
さすがに究極的にはそれが最短か。
#
gosh -Eを無理矢理使って、
#
#!/usr/local/bin/gosh -Ecall-with-input-string"\x28print\x20\x22Hello,\x20world\x22\x29"load-from-port
#
とすると0個とか。さすがに何やってんのか訳分からん。