Scheme

SICP勉強会#2に参加しています

いやー、今日はがんばりました。数学の話が結構あって、ずいぶん忘れている自分に愕然としました。四元数を勉強しとくこと。3D関係で応用しているみたい。 Gauche and SICP 勉強会@関西 cuzicさんのホワイトボードをメモ。みんなフィボナッチ好きだなぁ。 |F…

SICP勉強会に参加しています

cotocotoのアナウンス → http://cotocoto.jp/event/25200 lingr → Gauche and SICP 勉強会@関西 ustream → emaame いつの間にか開始時間が12:30から13:00に変更になった模様。以下に解いた練習問題を貼っておきます。 問題1.3 (define (f1.3 a b c) (cond ((…

プログラミングGauche買いました

プログラミングGauche作者: Kahuaプロジェクト,川合史朗出版社/メーカー: オライリージャパン発売日: 2008/03/14メディア: 大型本購入: 22人 クリック: 713回この商品を含むブログ (244件) を見る週末に買いました。素晴しい本です。 表紙の魚は、フムフムヌ…

Schemeを作る理由

Ruby上で動くSchemeって実用的な面から見るとあんまりメリットはないように思います。ひとえに僕の学習のため。 実はSICPってまだまともに読んだことないんですよね(というか持ってすらいない)。自分の作ったSchemeでSICPを読み解く。すばらしいです。いつか…

narascheme作りました

Google Code Archive - Long-term storage for Google Code Project Hosting. Ruby上で動く3impの3章のヒープベースの評価器です。3.5節の変数へのアクセスの効率化も実装済みです。 これは生駒読書会#2の成果です。とりあえず読書会終了時点のスナップショ…

独習 Scheme 三週間

独習 Scheme 三週間 Teach Yourself Scheme in Fixnum Days 読むこと。> 自分

逆ポーランド電卓(高階関数でリファクタリング)

id:ha-tan:20050913:1126563315 ひらいさん、コメントありがとうございます。eval…の前に、高階関数を使ってリファクタリングしてみました。こんなところでしょうか。うーん、いまいちエラー処理がかっこ悪いような気がします。 #!/usr/bin/env gosh (define…

逆ポーランド電卓(再帰版)

id:ha-tan:20050908:1126130413 id:ha-tan:20050906:1125958858 副作用をなくして、再帰で書いてみました。ちょっとSchemeぽくなりました。 #!/usr/bin/env gosh (define (error mesg) (display mesg (current-error-port)) (newline (current-error-port)) …

逆ポーランド電卓(続き)

http://quasiquote.org/log2/Erlang/2005/09/07/reverse-polish-notation-calculator 反応ありがとうございます。 副作用ですか。push!、pop!を使っている時点で負けですね。id:ha-tan:20050906:1125958858のプログラムで、まずは以下の2点を改善かな。 '+'…

逆ポーランド電卓

Schemeのお勉強のため、Gaucheで逆ポーランド電卓を書いてみました。が、あまりSchemeらしくないですね。むー。とはいえ、新しく言語を学ぶ際には、逆ポーランド電卓は適度な題材だと思います。 ファイル名: rpcalc.scm #!/usr/bin/env gosh (define (error …

引数の処理

gauche.parseoptモジュールを使った場合。 #!/usr/bin/env gosh (use gauche.parseopt) (define (usage program-name) (format (current-error-port) "usage: ~a [options] ...\n" *program-name*) (exit 1)) (define (main args) (set! args (let-args (cdr…

横着プログラミング 第10回: scmail: Scheme によるメールフィルタ

高林さんの横着プログラミング 第10回: scmail: Scheme によるメールフィルタの序文は、Lisp(とかScheme)を学ぼうとする人に対して勇気を与えてくれます。 特に高林さんの記事中でも引用していたお言葉 Eric Raymond氏は「ハッカーになろう」より、 Lispは、…

はじめてのSchemeプログラム。

そのいち。Hello, world!!。 #!/usr/bin/env gosh ; -*- scheme -*- (define (main args) (display "Hello, world!!") (newline) 0) ; => Hello, world!!そのに。引数を表示。 #!/usr/bin/env gosh ; -*- scheme -*- (define (main args) (for-each (lambda …

Gaucheをインストール

Gaucheをインストールしてみました。Schemeお勉強開始!! $ cd /usr/pkgsrc/lang/gauche && make install