2010年1月30日土曜日

Scheme コードバトンに参加

次回3月予定のShibuya.lispに向けて、現在面白げな企画が進行中です。

Shibuya.lisp に向けて Scheme コードバトンするのはどうか?
第1回 Scheme コードバトンのお知らせ - ひげぽん OSとか作っちゃうかMona-

;; ■ これは何か?
;; Scheme のコードをバトンのように回していき面白い物ができあがるのを楽しむ遊びです。
;; 次回 Shibuya.lisp で成果を発表します。
;; Scheme 初心者のコードを書くきっかけに、中級者には他人のコードを読む機会になればと思います。
;;
;; ■ 2 つのルール
;;
;; (1)自分がこれだと思える変更をコードに加えて2日以内に次の人にまわしてください。
;; 「人に優しい」変更なら何でも良い。1文字の変更でも可。
;; 「人に優しい」とは例えば、次の人が読みやすいコードを書くなど。
;; コードを削るのもあり。
;;
;; (2)次の人にまわしコードが変更されるのを"見守る"。
;; この説明書きを含めてバトンが伝わった事を必ず確認してください。
;; 止まっていたら助けてあげてください。

自分もg00001さんのバトンから派生したCL版を弄らせてもらいました。ライブラリまわりの導入に手間取ったのがちょっと痛かったかも…とりあえずテスタくらいの役割は果たせたんじゃないかと思います。

それと、newlispも一応lisp風スクリプト言語ということで大元となるhigeponさんのバトンからforkしてnewlisp版も作ってみることに。
こちらはCLやSchemeと違って正しいコーディングスタイルが分かってないので、つらつらと手の赴くままに。

動作例は以下

[~/code/newlisp]$ newlisp scheme_button.lsp http://gist.github.com/273424.txt # 辞書ファイルをURLから取得
allowance: 割当量 [y/n/q]? y
defect: 欠点 [y/n/q]? n
errand: 使いっ走り [y/n/q]? y
exploration: 探査、探検 [y/n/q]? y
heap: 積み重ねた物 [y/n/q]? y
;; saving dict...done
[~/code/newlisp]$ cat words.txt
(allowance "割当量" 1 0)
(defect "欠点" 0 1)
(errand "使いっ走り" 1 0)
(exploration "探査、探検" 1 0)
(heap "積み重ねた物" 1 0)

scheme版と同様にコマンドラインからの利用で、 newlispバイナリ一つあれば動作するようになっているとは思います。

CL版弄った時間もあわせると2日以上かかっていますがまあ気にしない。

0 件のコメント:

コメントを投稿