Scheme

クロージャとブロック (追記)

今日になって、昨日の一連のエントリを読み直してみましたが、細かい話ですが注釈を入れさせて貰った方が良さそうな部分を発見してしまいました。それなりに推敲しているつもりですが、私が書く場合は、やはり少し寝かせてからでないとダメですね。昨日のエ…

ふう、疲れました。

ここまで色々とクロージャについての考察を行なって来て、識者の方々にもコメントを頂けましたし、それらを踏まえて一旦は整理しておかねば、と一気に書いてしまいましたが……「簡単にまとめてみました」とか書いてますがとんでもない、私としてはもうとんで…

クロージャとブロック (後編)

前編では、クロージャと、私なりにクロージャと区別している `ブロック' についての比較を、高階関数にブロックをそのまま渡す様なコードについて試みました。そこではクロージャとブロックに明確な差異はありませんでした。しかし、手続きを無名関数として…

クロージャとブロック (前編)

上のエントリでは、これまで考察してきたクロージャについての簡単なまとめを行ないました。そのエントリで最後に書いたブロックにも着目しながら、これまで考察してきたクロージャについて、コードを挙げて検証してみようと思います。さて、上のエントリで…

クロージャについて: 一旦、簡単にまとめてみます。

これまで考察してきたクロージャの件ですが、まだまだ頭の中では発散しているのですけど、一旦、簡単にまとめておきたいと思います。ただ書き散らかしているだけでは意味ない (いや、意味はあると思ってるんですけど。自己矛盾だ。) ですからね。Rui さん、s…

クロージャについて: コメントありがとうございます。

勝手にプレッシャーを感じながら、これまた勝手に識者の方々にコメントをお願いしていたところ、Rui さんに続いて shiro さんからもコメントを頂きました。私の発散した記事を読んで頂いた上で、非常に示唆に富んだコメントを頂きまして、本当にありがとうご…

トラックバックありがとうございます。

何と、結城さんからトラックバックを頂いてしまいました。 メモ。 id:tenyさんのクロージャについて少し考えてみました。 id:tenyさんのクロージャについてもう少し考えてみました。 ということなんですが、これはきっと、higepon さんと同じで、 [gauche][s…

クロージャについて、どんどん発散して行くなあ。

色々考えていることを整理してみたいと思ったのですが、意に反して、どんどん発散してしまいます。こんなときはまだ整理できる段階ではないということで、発散するままに書き連ねてしまうことにしてみました。先のエントリで少し触れましたが、私は、クロー…

クロージャについてもう少し考えてみました。

昨日のエントリに Rui さんからコメントを頂きました。ありがとうございます。 私もなんだか同じイメージを持ってます。静的スコープでオブジェクトの寿命が永遠(無限エクステント)というのがまず初めにあって、その結果クロージャがあるという印象。 私が漠…

クロージャについて少し考えてみました。

クロージャについて色々と考えてみました。以前にも書いたのですが、そもそも Gauche をインストールした目的の一つに、クロージャの動作をもっと理解したいという目的があったので。で、色々と shiro さんが公開されているドキュメントを読み返したり、Gauc…

Gauche を update.

昨日の、 Compile Error: [internal error] stray local variable:の件で shiro さんからコメントを頂きました。ありがとうございます。 0.8.6 以前では、コンパイラの最適化ルーチンのバグで、このエラーが発生することがあるとのことです。 http://www.shi…

良く判らない動作です。

Gauche でクロージャを作っていて、ちょっと良く判らない動作に遭遇しています。先ず、以下のコードをトップレベルで評価すると意図した通りに動作してくれます。 (1) トップレベルで評価すると意図した通りに動作する。 (define (make-counter init increme…

多値を返す関数での再帰。

先日のエントリで多値を返す関数について考えてみましたが、`call-with-values' に渡せる手続きに引数が渡せないことから、再帰的に利用することができなさそうに感じていました。しかし、よくよく考えれば、そんなことは無いですね。二つの引数 a, b をとっ…

多値を返す関数

以前のエントリで、Scheme で多値を返す関数について shiro さんに教えて頂いたのですが…… (define (dvals a b) (values a b)) => dvalsという余り意味の無い、多値を返す関数を定義して評価すると、 (dvals 1 2) => 1, 2となります。 ここで `dvals' は、二…

R5RS 邦訳の Info を。

これまで、アルゴリズム言語 Scheme に関する第五改訂報告書を参照していたんですが、何のことはない、同じ site の http://www.sci.toyama-u.ac.jp/~iwao/Scheme/scheme.html に、日本語版の info が置かれていることに気付いたので、Info で読める様にして…

遅々として進まず。

先日のエントリ (d:id:teny:20060416) で、Gauche という Scheme の実装をインストールしていた (素晴しい処理系を公開しておられる shiro さんに感謝致します) と書きましたが、このインストールを実施したのが 2月の半ばでした。もう 5月に入ったというの…