タグ

sicpに関するakio0911のブックマーク (10)

  • SICP 読み (388) 5.5 翻訳系 - yamanetoshi's diary

    そういえば下の手続きは繰り返しで書けるのか。 ScmObj Scm_VaList(va_list elts) { ScmObj ret; ret = va_arg(elts, ScmObj); if (SCM_NULLP(ret)) { va_end(elts); return ret; } return Scm_Cons(ret, Scm_VaList(elts)); }ええと、SCM_APPEND1 とか使えばなんとかなりそげ #define VA_NEXT va_arg(elts, ScmObj) ScmObj Scm_VaList(va_list elts) { ScmObj tmp, ret = SCM_NIL, end; for(tmp = VA_NEXT; !SCM_NULLP(tmp); tmp = VA_NEXT) { SCM_APPEND1(ret, end, tmp)

    SICP 読み (388) 5.5 翻訳系 - yamanetoshi's diary
  • SICP 読み (389) 5.5 翻訳系 - yamanetoshi's diary

    帰宅。thinkpad が着いたらしい。同居人が着払いと思い込んだため、到着は明日になる模様。R61e って微妙に幅広で今更ですがちょっと気に入らん。 東京に持ってけるのは良いのですが、今持ってる鞄に入るのかどうか微妙。困ったなぁ。 問題 5.51 つい癖で先を見てしまう。多分越えねば、な山は全然見えてないのでしょうが。 read 微妙って思っていたんですが、そうでもなさげ。開き括弧で始まって閉じ括弧で終わる、というのは色々な意味でシンプルだな、と。 シンボル、とか quote の方がむしろ大変な気がしている てーか、大体今ヤッてるソレは役に立つのだろうか ま、いいや。とりあえず car だの cdr だのなソレをヤッツケる。事前に gosh で確認しながら以下のコメント作成済み /* car of (1 . 2) is 1 cdr of (1 . 2) is 2 caar of ((1

    SICP 読み (389) 5.5 翻訳系 - yamanetoshi's diary
  • SICP 読み (390) 5.5 翻訳系 - yamanetoshi's diary

    なんか知らんがマクロを使うと意外に簡単だった。 以下、car だの cdr だのの実装ッス ScmObj Scm_Car(ScmObj obj) { return SCM_CAR(obj); } ScmObj Scm_Cdr(ScmObj obj) { return SCM_CDR(obj); } ScmObj Scm_Caar(ScmObj obj) { return SCM_CAAR(obj); } ScmObj Scm_Cadr(ScmObj obj) { return SCM_CADR(obj); } ScmObj Scm_Cdar(ScmObj obj) { return SCM_CDAR(obj); } ScmObj Scm_Cddr(ScmObj obj) { return SCM_CDDR(obj); } ScmObj Scm_Caaar(ScmObj obj) { ret

    SICP 読み (390) 5.5 翻訳系 - yamanetoshi's diary
  • ばたばたしてる間に - yamanetoshi's diary

    3/12 の SICP 読書会が無い旨のメイル着信を確認。すっげぇ早くに参加メイル送ったのに (とほほ 仕方が無いので 12 日はジュンク堂方面に行ってみようかと。 # 仕方が無い、とゆーのも変

    ばたばたしてる間に - yamanetoshi's diary
  • 関数型言語の勉強にSICPを読もう - (53) 4章 - 超言語的抽象(216ページ) C++でSchemeインタプリタを作ろう1 - higepon blog

    4章では Scheme の上に Schemeインタプリタを作る過程でいろいろなものを学んでいきます。 このように、被実装言語と実装言語が同じなことを metacircular というらしいのですが、読んでいるだけでドキドキしてきます。 実際4章を読み進めていくと、とても面白いのですが、所々で引っかかるところがあります。 どうも読んでいるだけでは解決しないモヤモヤがあって、それは被実装言語と実装言語の境界に関する問題のように思えてきました。 metacircularだと、どこまでが被実装言語の機能で、どこからが実装言語の機能なのか分からなくなってきてしまうのです。 こんな経緯もあり、4章で書かれているSchemeインタプリタを「ほぼそのまま」C++で実装してみようという思いに至りました。 最近SICP日記を更新できなかったのはこのあたりに悩んでいたからです。 いろいろと困難あるでしょうが、試

    関数型言語の勉強にSICPを読もう - (53) 4章 - 超言語的抽象(216ページ) C++でSchemeインタプリタを作ろう1 - higepon blog
  • SICP 読み (386) 5.5 翻訳系 - yamanetoshi's diary

    今日は休暇を頂いているのでヤリたい放題 (何 最初の用件がとりあえず済んだので作業着手。SCM_APPEND なんちゃらなマクロから。とは言え、SCM_APPEND1 と SCM_APPEND の違いは何なのか。 #define SCM_APPEND1(start, last, obj) \ do { \ if (SCM_NULLP(start)) { \ (start) = (last) = Scm_Cons((obj), SCM_NIL); \ } else { \ SCM_SET_CDR((last), Scm_Cons((obj), SCM_NIL)); \ (last) = SCM_CDR(last); \ } \ } while (0) #define SCM_APPEND(start, last, obj) \ do { \ ScmObj list_SCM_GLS = (ob

    SICP 読み (386) 5.5 翻訳系 - yamanetoshi's diary
  • wikiwikiweb.jp

    This domain may be for sale!

  • 関数型言語の勉強にSICPを読もう - (1) SICPを読み始めた理由 - higepon blog

    「計算機プログラムの構造と解釈-Structure and Interpretation of Computer Programs(以下SICP)」というを読み始めました。 なぜ読み始めたかを書いておくと後から読み返して初心を思い出すことができると思うので書いておきます。 世の中ではにわかに関数型言語(特にHaskell)がブームです。 もちろんそのブームにのっかったってのもありますが、d:id:higepon:20051214:1134573806にもあるようにそれ以前にSchemeを勉強しようとして挫折したことがあります。 僕がSICPを読もう・関数型言語を学習しようと思ったの理由は以下の通り。 ときどき「関数型言語はすごいらしい」と聞こえてくる。でも何がすごいのか理解できない自分がいた。 自分が尊敬するプログラマの多くがSICPを読んでいたり関数型言語を理解している。そして勉強する

    関数型言語の勉強にSICPを読もう - (1) SICPを読み始めた理由 - higepon blog
    akio0911
    akio0911 2008/01/30
    'ときどき「関数型言語はすごいらしい」と聞こえてくる。でも何がすごいのか理解できない自分がいた'
  • 「計算機プログラムの構造と解釈(SICP)」を読み終えて by なつたん - なつたん

    ひげぽんさんの所をパクってテンプレートにして書いてみました。 練習問題をスキップしつつ、私も約半年でで読み終えました。とても楽しい日々を過ごすことができました。 SICPを読む過程で得たもの ・遅延評価とstream ・制約プログラミング、ロジックプログラミング、amb ・Emacs(Meadow)+gauche+Quackの組み合わせ便利 ・同じ事を表現するのに、抽象度を上げたり、下げたりできること。 ・手加減してあればLispのソースも追えるようになった。手加減していないのは駄目。 ・Lisp特有の、手続きを評価する→S式ができる→また評価する→S式ができる、という気持ち悪い再帰の存在。 ・SICP読み仲間ではないけどいろんなblogつながり。組み込みとFPGAだけでない、いろんな世界がある事をあらためて感じた。 SICPを読みはじめたときの動機を振り返る ・関数型言語について Lis

    「計算機プログラムの構造と解釈(SICP)」を読み終えて by なつたん - なつたん
    akio0911
    akio0911 2008/01/30
    '10年前とは言わなくても5年前にSICPを読んでいたら、と何回も悔やんだ僕がいうんだから間違いない'
  • 計算機プログラムの構造と解釈 - Wikipedia

    『計算機プログラムの構造と解釈』(Structure and Interpretation of Computer Programs。原題の略称SICPがよく使われる)は、1985年にMIT出版から刊行された、計算機科学分野の古典的な教科書。著者はマサチューセッツ工科大学 (MIT) の教授ハル・アベルソンとジェラルド・ジェイ・サスマン、ジュリー・サスマン。かつてMITコンピュータ科学科の6.001として知られるプログラミングの入門講義で使われていた[1]。第2版(ハードカバー版 ISBN 0-262-01153-0、ペーパーバック版 ISBN 0-262-51087-1)が1996年に刊行された[2]。計算機科学の古典として広く認められている。 表紙に魔術師が描かれているため魔術師(Wizard Book)としても知られ、まれに表紙の色をとって紫(Purple Book)とも呼ばれる

    計算機プログラムの構造と解釈 - Wikipedia
    akio0911
    akio0911 2008/01/30
    '計算機科学の古典として広く認められている'
  • 1