この辺に触発されてみるテスト。
def f
lambda do |x|
x.each do |i|
p i end end end
f.call ["hoge","fuga"]
lisper の気持ちになってみた (怒られるぞ) 。 カッコの代わりに end を使うなら end の場所はここしかない!!
ふと気づくと uim-sh ってコマンドが存在するのであった。 何かなーと思ってとりあえず呼んでみる。
% uim-sh uim>
む…
uim> (define hoge '(1 2 3)) (1 2 3)
どう見ても Scheme インタプリタです。本当に(略
そういや uim って設定ファイルが Scheme だったっけ。 そこら辺のデバッグに使うんだろな。 ちなみに調べてみると siod ベースらしい。 またお前か!!
そんなことより、カッコが全角で入力されちゃうのが切ないので何とかせにゃならん。 ここ見ながらちまちまがんばろう。 っつーか、以前この辺設定した気がするんだけど、設定ファイルはどこ行っちゃったんだろなあ...orz
/sw/share/japanese.scm から関係箇所パチってでっちあげ。
% cat ~/.uim
(require "japanese.scm")
(define ja-rk-rule
(append '(
((("!"). ())("!" "!" "!"))
((("\""). ())("\"" "\"" "\""))
((("#"). ())("#" "#" "#"))
((("$"). ())("$" "$" "$"))
((("%"). ())("%" "%" "%"))
((("&"). ())("&" "&" "&"))
((("'"). ())("'" "'" "'"))
((("("). ())("(" "(" "("))
(((")"). ())(")" ")" ")"))
((("^"). ())("^" "^" "^"))
((("\\"). ())("\\" "\\" "\\"))
((("|"). ())("|" "|" "|"))
((("`"). ())("`" "`" "`"))
((("@"). ())("@" "@" "@"))
((("{"). ())("{" "{" "{"))
((("+"). ())("+" "+" "+"))
(((";"). ())(";" ";" ";"))
((("*"). ())("*" "*" "*"))
(((":"). ())(":" ":" ":"))
((("}"). ())("}" "}" "}"))
((("<"). ())("<" "<" "<"))
(((">"). ())(">" ">" ">"))
((("?"). ())("?" "?" "?"))
((("/"). ())("/" "/" "/"))
((("_"). ())("_" "_" "_"))
) ja-rk-rule))
基本的に記号は半角でという方針。
設定というか uim の変換エンジンのロジックはぜんぶ scheme で書かれてますよ。
ありゃま、そうだったんですか。<br>じゃあ追加機能とかも Scheme で書けるんすね。それは楽しそうだ。