計算機プログラムの構造と解釈、通称SICPを一から翻訳し直しました。 ファイル: SICP非公式日本語版 翻訳改訂版 リポジトリ: https://github.com/hiroshi-manabe/sicp-pdf また、今回の翻訳をするにあたって考えたことを別記事にまとめました。 腐った翻訳に対する態度について SICPはMITの有名なプログラミングの教科書です。詳しくはminghai氏の記事をご参照ください。 この翻訳改訂版は、minghai氏の非公式日本語版(以降、minghai氏版)のあまりにも惨憺たる翻訳を見かねて、原著から翻訳をし直したものです。この翻訳を進めるにあたっては、minghai氏版の訳を置き換えていくというやり方で進めていきました。しかし、差分を取ればわかっていただけると思いますが、minghai氏版のテキストは痕跡をとどめていないはずです。この方式を採ったのは、
素数夜曲 女王陛下のLISP読みました。簡単に感想を。本の内容 タイトル通り数学とLispの本です。 この本は大きく前半と後半(付録)に別れています。前半は算数から数学に自然に入って行くような内容が講義形式で話が進みます。整数、最大公約数から入り、無限、有理数、無理数と、数を扱った数学をわかりやすく説明しています。この本の基本スタンスが、「手を動かして自分で法則に気がつく」事を重視しています。数学の楽しみ方を音楽に例えているのははじめて見ました。音楽の楽しみ方が、下手でも良いから演奏することのように、数学に関しても主体的に取り組んでいくことがとても大事というのは共感できます。プログラミングも同じですね。数学の本なのに英語の表記を併記してあるのは助かります。よくわからないところは、検索しもって読んでいくと面白いと思います。時々AAで書かれた検索梟が登場して「○○」で検索しろと教えてくれます


タイトル通り数学とLispの本です。 この本は大きく前半と後半(付録)に別れています。前半は算数から数学に自然に入って行くような内容が講義形式で話が進みます。整数、最大公約数から入り、無限、有理数、無理数と、数を扱った数学をわかりやすく説明しています。無限と濃度の所は特に面白く感じました。自然数と偶数が同じ程度に多くある事を受け入れるためには、無限を受け入れないといけない所に無限の深さを感じました。まあ、無限だからどこまでも深いんですけど。 後半はSchemeの文法の説明が最初にあって、Schemeを使って数学のいろんな問題を解いていきます。ただ解くだけではなく、結果を可視化する所にも工夫がたくさん見られました。実践的なプログラムを作ると言うよりは、プログラミングを通して数学と向き合うところがメインです。SICPにλ計算を加えて内容を数学側に振ったような内容です。非決定性計算、無限スト
このセクションでは、継続を用いたプログラムを実際に動かしてみる。教科書の例題を解くためだけでなく、制御処理の仕組みを継続を活用して作ったり、既存のライブラリの動作をカスタマイズすることで実用的なプログラミングに応用できるようになることを目指す。また、処理系における実装の方法についても触れ、継続呼び出しのパフォーマンスについても考察する予定。 call/ccは、(call/cc proc) 式を評価した後すべき計算を、継続オブジェクトとして proc に渡す手続きである。 この継続オブジェクトは、C言語で考えると (call/cc proc) を評価した後の処理へgotoするマクロ、もしくは (call/cc proc) を評価したときに setjmp() によってマークした地点に longjmp() によって移動する関数に似ている。しかし、call/ccで渡される継続オブジェクトには、式の
Web上にあるほとんどのHaskellチュートリアルは言語についてのマニュアルのような教え方をしようとしているようです。それらには言語の文法、概念が少し載っていて、読者に対話環境でいくつかの簡単な関数を作るように指示します。よく機能する有用なプログラムの書き方は大抵最後にまわされるか、そもそも省かれていたりします。 このチュートリアルは違う方針を取ります。コマンドライン引数解析から始めて、完全に機能するR5RS Schemeのかなり大きなサブセットの実装まで進みます。道すがら、Haskellの持つI/O、mutable state、dynamic typing、エラー処理、そして構文解析機能を学びます。このチュートリアルを終える頃には、あなたはHaskellとScheme両方がかなり良くわかるようになっているはずです。 このチュートリアルの対象読者は主に以下の2種類です。 LispかSch
LISPUSERLISPMEMOLisp is a programmableprogramming language. -- John FoderaroEmacs Lisp は (Scheme よりは) Common Lisp に近い、ということかと思います。 以下理由: 真偽: T, NIL で Scheme 族ではない 基本が反復。Schemer が使うとほぼ間違いなく再帰が深過ぎというエラーがでる Lisp-2 : 変数と関数の名前空間が別 (let ((car '(item))) (car car)) =>item ダイナミックスコープ (CLはレキシカルスコープとダイナミックスコープ、Schemeは基本レキシカルのみ) マクロが伝統的な defmacro 破壊的操作を恐れない (むしろ推奨)。命名規則も nrevse とか。 伝統的に関数型っぽく書く事を重視しない Comm

今週はずっと AVM2 アセンブラ abcsx http://github.com/propella/abcsx を他の Scheme に移植するという作業をやっていた。仕事の内容としてはそもそも Scheme で動かす必要すら無いのだけど、私は lisp 系の言語でプログラムを書く経験が乏しいので、色々な Scheme で動くようにするなかでノウハウが溜まるかなと考えた。特に、関数の引き数の順序とか名前の付け方とかはまとまったプログラムを自分で書かないとコツが掴めない。今の所 abcsx は PLT-Scheme と Gauche で動くようになった。あと、他の R6RS の処理系と Scheme48 でも動かしたいなと思うんだけど、なかなか上手く行かない。 まず R6RS について。R6RS ではリスト操作やバイナリ操作など便利な関数が標準になっているので、出来たらそっちを使いたいと思
Impromptu は Andrew Sorensen 氏によって作成されたライブコーディング環境だ。言語としては Scheme をベースとしており,それに映像や音楽を扱うためのライブラリ群と,リアルタイムにコードを記述し実行するためのエディット環境が統合されている。 実際に触ってみると,関数型言語とライブコーディングの親和性が,なかなか良いことが分かってくる。エディターの出来も良く,リアルタイムにコードを書きつつ実行するという作業をスムースに流れるようサポートしてくれる。 上のビデオでは, Impromptu のサンプルプログラムを参考にしつつ,簡単なアルゴリズム作曲のコードを組んでみた。ちなみに,ビデオ中に登場する "my:play" 等の関数は,作業を簡略化するためにあらかじめ用意しておいた関数なので悪しからず。 いくつかのデメリットもあるものの(最大の弱点はMac OS 版しか存
■ [ruby][memo] サンプルコード http://blog.deadbeaf.org/2009/08/26/mitaka-rb-4/ 標準クラスのサンプルコード bitclustに装備?海外の人はどうするの リファレンスとは独立したサイト(A)であるべきか そこにrubydocなりbitclustなりからリンクする gemなどのサンプルコード (A)とは別サイト? gem配布サイトが複数あるので特定のgem配布サイトが実装するわけにはいかない http://gemcutter.org/ が本当に公式になれば、そこにサンプルコード書ける機能があると楽しそうだ 結論 サンプルコード自体に価値があるものだからどこに書いてもいい、定番サイトができればそこに移住すればいい。 Rurimaphone++ ■ [scheme] 小さすぎるR5RS、大きすぎるR6RSに対するScheme分割案

Last Modified: Tue Sep 21 07:53:52 EDT 2004 (09/21, 20:53 JST) Sep 20 [Mon] (11:00) あいかわらずお人好しすぎるのだ、オレは…。 まあ、騙すよりは騙される側でいるほうが罪がなくていいのだけどね。 はて、なぜオレはそう考えるのだろう。か?? (11:07) 硬貨設定問題のつづき。じつはきのうの宿題の第 2問目はこうである: 出典はこちら ある国では、客と店員が協力して、買い物のさいに使う硬貨の個数の和がもっとも少なくなるように 買い物する。たとえば US で 24セントのものを買いたいときは、客は 24セント (硬貨6個) ちょっきりは 払わずに、わざと 25セント (硬貨1個) を払い、店員が 1セントのおつりを返すのだ。こうすることにより 「客の出した硬貨の数」 と 「おつりに含まれる硬貨の数」 の和が最小

','.join() がなぜキモイのか - methaneのブログPythonの','.join()がキモいと思ってた時代が僕にもありました - by edvakf inhatena この辺を読んだ感想。joinがArrayのメソッドであるべきか、Stringのメソッドであるべきかを議論していると、多重ディスパッチ派の人が嬉々としてやってきますよ。 で、「これだから単一ディスパッチのオブジェクト指向はダメなんだ。joinはArrayとStringのコンビネーションで定義するべきメソッドだ」とか言って、こんなコードを書くと思います。 (define-methodjoin ((x <string>) (xs <list>)) (string-join (map x->string xs) x)) 念のため ボクは多重ディスパッチ派閥じゃないですよ。 ボクの考えでは、これはオブジェクト指
プログラミングに詳しい人に質問です。大学でプログラミング経験の学部一年生向けにプログラミングを教えることを想定しています。週1コマ×半年程度の限られた時間で、プログラミングとはどういうものかという本質を教えたいのですが、どの言語を使うのが適切でしょうか。
野田 開さんのご厚意によりPS3をSSH経由で提供して頂きました m(_ _)m 32bit/64bit対応でFFIもサポート済みですよ。 :) libspe2を使ったテストプログラムを作ってみました。 svn trunkのイプシロンをPS3に入れると動きます^^b #!/usr/bin/env ypsilon #!r6rs ;; ps3-cell-demo.scm ;; tested on PS3Linux (import (rnrs) (only (core) system format iota) (ypsilon ffi) (ypsilon concurrent) (ypsilon cell libspe2)) (define spe-code " #include <stdio.h> int main(unsigned long long spe_id, unsigned lo

Chaton (pronounced like [sha-ton], a 'kitten' in French) is asimple Comet-based Webchat server written in Gauche. Originallyit is developed to host a successor of Gauche chat room on Lingr ( http://www.lingr.com ), when Lingr announced to terminateits service. Although Chaton neveraims at serving in such a large scale and with tons of features like Lingr, the "look and feel" of the interface s
計算機プログラムの構造と解釈 作者: ジェラルド・ジェイサスマン,ジュリーサスマン,ハロルドエイブルソン,Gerald Jay Sussman,Julie Sussman,Harold Abelson,和田英一出版社/メーカー: ピアソンエデュケーション発売日: 2000/02メディア: 単行本購入: 35人 クリック: 1,149回この商品を含むブログ (480件) を見る 巷で難しいと噂のSICPの勉強の過程をメモしておこうと思います。勉強のやり方としては、 挫折禁止 挫折するのが一番駄目。人に聞いても良い。毎日1ページずつでも良いとにかく進む。 出来るだけ練習問題を解く 受験生ではないけど手と頭を動かさないと覚えなさそう。 練習問題が難しい場合は答えを見ても良い 一人では無理な場合もある。答えを見て理解できたならばそれで良し。 勉強の過程を文章に残す 自分用の記録として、そして後学者

「The Little Schemer」(ザ リトル スキーマー)を読んでいます。 この本が大好きになりました。翻訳したいです。 以前、日本語版の「Scheme手習い」というものがあったようなのですが、現在は絶版のようです。 この本は日本語版があった方がいい 間違いない。だっておもしろいもん。英語だからって理由で敬遠する人が結構いるはずです。私も英語が読めないから敬遠しそうになりました。 しかしチャレンジしたら噂の通り英語わからなくても読んでるうちに読めるようになるレベル。 でもやっぱり日本語で読みたい。他の人にも読んでもらいたい。 翻訳したい。 できるかできないか、今はそんなことわかりません。やってみたいんです。 日本語訳が一番欲しいのは自分だし。 どうやったらそんなチャンスが来る?
SICPをプログラミングの本だとして批判したら、そうじゃねーだろという反応が多く帰ってきた。 いまSICPを読むのは時間の無駄 じゃあ、SICPはどういう本か。 LISPを使って仮想マシンを作って、LISPコンパイラを作って実行させて、プログラムがどのように動くかを勉強する本だ。 遅延評価したりガベージコレクションしたりする仮想マシンを作って、LISPプログラムをその仮想マシンで動かせるようにコンパイルする。LISPは、サンプルプログラムとしては機械語のように使われている。そこで作成されるプログラムが扱う対象としては高級言語として使われている。 LISPはアセンブラであり高級言語というバランスをもてるコンパクトな言語で、そこにSICPがLISPを使っている必然性がある。 そういう本なのに、プログラミングの本として批判してたから、違うだろと言われたわけだ。 ただ、現実問題として、プログラミン

リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く