Scheme

SRFI日本語訳リンク

http://www.chino-js.com/tech/srfi/final-srfis.html 後で読むリンク。

Schemeのお勉強その6 スコープについて(後編)

再帰と関数内関数 理由は良く知りませんが、Lisp/Scheme では繰り返し処理には再帰が好まれます。どんなループも再帰に変換できる、ということを昔C言語で試行錯誤したことがありますが、どんな内容だったかは覚えていません。(このテーマはまた後日)。 再…

(equal? Schemeのスコープ Cの型)

Schemeのスコープについてここ数日考え続けています。考えながらプログラミングGaucheを読み進めたら「環境フレームモデル」って章がありました。ややこしい話で最初ちょっと混乱したけどじっくり考えたらなんとなく分かってきました。 C/C++のような静的型…

IronSchemeで遊ぶ。

「プログラミングGauche」が面白くて勉強ブログさぼり気味。気分転換に IronScheme をいじってみる。 System.WIndows.Forms でウィンドウ表示。ほぼ example で付いてきたコードそのまま。 (import (rnrs) (ironscheme clr)) (clr-reference System.Windows.…

Schemeのお勉強 その5 スコープについて(前編)

前回レキシカル変数についてC言語の例をあげて書いてみました。が、どうも腑に落ちない感じがしています。そこで今回はSchemeのスコープについて整理してみます。 変数と関数の名前空間 スコープとはちょっと違いますが、最初に変数・関数の名前空間について…

Schemeのお勉強 その4 レキシカル変数

MIT-Scheme 入れてみた。 Gauche と他の Scheme 処理系との違いを試す目的で MIT-Schemeをインストールしました。だけど同梱のエディタ edwin は微妙な使い心地だし、コマンドプロンプトから scheme.exe を起動すると専用のシェルウィンドゥが起動しちゃった…

Schemeのお勉強 その3 条件判定

if, when, unless lisp の if 式は、他のどの言語の if 文 よりもシンプルだと思う。一切の無駄が無い。 gosh> (define x 10) x gosh> (if (< x 100) "small" "big") "small" gosh> (if (< x 100) (begin (display "A") (display "B") (display "C")) (displ…

Schemeのお勉強 その2

amazon購入本4冊の不在届け到着。平日は時間がよめない。土曜日までお預けだ。 lambda と クロージャー lambda式はクロージャーになる(用語の使い方合ってるだろうか?) gosh> (lambda (x y) (+ x y)) #<closure #f> gosh> ((lambda (x y) (+ x y)) 10 20) 30 define </closure>…

Schemeのお勉強 その1

amazonにプログラミングGaucheを注文して、届くまではこちらでscheme独習中。 シンボル シンボル。schemeでは大文字小文字区別無しらしいけど。 gosh> (eqv? 'ABC 'abc) #f gosh> (eqv? 'ABC 'ABC) #tgaucheでは区別するみたい。リファレンスみたらそう書い…

なんとなく流行のGaucheに手を出す。

ちなみに自分は、lispはEmacsLispをかじった程度。したがって初歩的な内容しか書けません。 set!, push!, pop! なんでビックリマーク付いてるんだ? Ruby? まず変数への代入。commonLisp では、いきなり > (setq a "hoge") "hoge" と変数束縛できるが、Gauc…