タグ

schemeとprogrammingに関するHashのブックマーク (7)

  • 弱LisperがMITでSICP(シクピー)を受講した結果 - Qiita

    SICPとは何か Structure and Interpretation of Computer Programsという古めかしい表紙のをご存知でしょうか? これはもともと、マサチューセッツ工科大学(Massachusetts Institute of Technologies; MIT)の電気工学および計算機科学(Electrical Engineering & Computer Science; EECS)系の学部の授業の一目として提供されていた同名の授業から発生した教科書です。教科書は無料公開されています。 HTML版 http://mitpress.mit.edu/sicp/full-text/book/book.html Kindle版 https://github.com/jonathanpatt/sicp-kindle PDF版 https://github.com/s

    弱LisperがMITでSICP(シクピー)を受講した結果 - Qiita
    Hash
    Hash 2015/02/04
    SICP, 本場ではしくぴーって呼ぶの衝撃的 || 教科書から発展した内容も扱ってて面白い
  • Scheme:call/ccと副作用

    c.l.sで興味深い議論が進行していたのでメモ。 purely functional Lisp + call/cc = ? 発端は、Nils M Holmの 「Purely functionalなマイLispにcall/ccをつけてみたよ」 という投稿。 それに対し、Schemeの大御所達から 「call/ccは、副作用を生じるよ」 と突っ込みが入る。 言い替えれば、「set!などの明示的な副作用オペレータを一切持たない purely functionalなLispに、call/ccを導入すると、それはもはや purely functionalではなくなる」ということ。 実例 これは簡単な例によって示すことができる。szgygによる例: (let ((f (lambda (x) (call/cc (lambda (k) k))))) (cons (f 0) (f 0))) (f 0)の2回

    Scheme:call/ccと副作用
  • scheme quiz time! — wingolog

    Ready? If you know Scheme, you should think on this a little bit before looking at the answer. I'll wait. OK! We know that in both functions, two calls are made to the get function, in the same order, and so really there should be no difference whatsoever. However there is a difference in the continuations of the get calls. In test1, the continuation includes the identity of the result vector -- b

  • t, nil, '(), #t, #f

    ばばろあ @valvallow (car '()) ; -> nil ってほんと良いよな。(define (hoge proc lis)(if (null? lis)lis(proc lis))) みたいのないかな。 2010-05-19 17:18:02

    t, nil, '(), #t, #f
  • Rubyで末尾再帰最適化をする。 - Homoiconic Days

    元ネタはPythonで末尾再帰最適化をする。 - wasabizの日記。Pythonのデコレータを使って、末尾再帰で書かれた関数に対して末尾呼び出し最適化(TCO)を行う、というものです(どうやってTCOを実現しているかの詳細についての説明はここでは割愛します)。 さて、元エントリでは「Pythonがすごいからこんなことができるんだ」という感じで書かれていますが、タネさえ分かればいろんな言語でできそうだということが分かったので、他の言語でも試してみることにしました。 まずはじめに、試しにScheme版を書いてみたものの、そもそもSchemeはTCOを勝手にやってくれるのであまり意味のない例になってしまいました。 その後、Scheme版をだいたいそのままRubyに書き直したのが以下のRuby版です。 class Module def tco(name) continue = [] first

    Rubyで末尾再帰最適化をする。 - Homoiconic Days
  • chibi-scheme - Project Hosting on Google Code

    Minimal Scheme Implementation for use as an Extension Language http://synthcode.com/wiki/chibi-scheme Chibi-Scheme is a very small library intended for use as an extension and scripting language in C programs. In addition to support for lightweight VM-based threads, each VM itself runs in an isolated heap allowing multiple VMs to run simultaneously in different OS threads. There are no external de

    chibi-scheme - Project Hosting on Google Code
    Hash
    Hash 2012/10/29
    ちびスキーマ
  • Webアプリケーション設計と継続 | oldwaveの日記 | スラド

    Webアプリケーションの設計をするとき、Schemeでいう継続(continuation)の概念を理解しておくと非常に役に立つ。 継続の概念は、なかなか理解が難しい。概念として理解できても、それが何に役立つのかわからないという人も多いだろう。実際、僕も継続の有効活用についてわかるようになるまで、何年もかかったし、今でも十分に馴染んでいると自負できるまでには至っていない。 しかし、最近になって気付いたのだが、Webアプリケーションというものは、ちょっと見方を変えてみると、GOTO文とグローバル変数の塊なのだ。そして継続はこういった問題を制御するための武器になる。 セッションに値を格納するとき、それが不変の値であれば良いが、状態を持つ場合、それはまったくグローバル変数そのものである。しかもWebアプリケーションの場合、複数のURIにまたがる処理はブラウザの「戻る」ボタンやブックマークによって、

  • 1