タグ

Schemeに関するsokutou-metsuのブックマーク (11)

  • Write Yourself a Scheme in 48 Hours - Wikibooks, open books for an open world

    Write Yourself a Scheme in 48 Hours is a featured book on Wikibooks because it contains substantial content, it is well-formatted, and the Wikibooks community has decided to feature it on the main page or in other places. Please continue to improve it and thanks for the great work so far! You can edit its advertisement template. This book proceeds at a very brisk pace, which might occasionally lea

  • よりSchemerフレンドリなJavaScriptへ

    Your browser doesn't support the features required by impress.js, so you are presented with a simplified version of this presentation. For the best experience please use the latest Chrome, Safari or Firefox browser. '("Kyoto.lisp Tech Talk #1" . "@taiju") 免責 当スライドで使用するLispコードはGaucheにて評価可能です。また、一部でGauche独自のメソッドを利用している箇所もあります。 当スライドでは、JavaScriptとECMAScriptという名前を使っておりますが、厳密に使い分けているわけではありません。文脈によって、適当

  • 畳み込み関数の比較 (fold / accumulate / inject / reduce) - blanket log

    つーか、fold の弱点として、言語によって引数の順番がまちまちで、 正直憶えきれないってのがあるんだよな。誰か対応表とか作ってくれんもんか。 jijixi's diary - fold, map, for-each この中から一つ選ぶとしたらどれ? 確かにいろいろとややこしいのでまとめてみました。 いくつかの言語について大雑把に表にすると次のような感じ。 言語 関数 Haskell, OCaml, Scheme, Erlang foldl* f init items C++ accumulate(begin, end, init, f) Ruby*, JavaScript items.inject(init, f) Python, Perl* reduce(f, items [, init]) 言語 畳み込む二項演算 Scheme(SRFI)*, Erlang f(item, acc)

    畳み込み関数の比較 (fold / accumulate / inject / reduce) - blanket log
    sokutou-metsu
    sokutou-metsu 2011/12/19
    foldlとfoldr
  • SICP4.1にとりかかる前に足し算evalを作る - mmitouの日記

    SICP4章ではschemeの評価器を作ります。 SICPの4.1を読んでそのまま実装するだけでクロージャを装備した簡易schemeが出来上がります。 しかしそれだけにハードルが高くなるためなかなか先に進めなくなってしまう場合も多いそうです。 そこで今回は足し算を実行できるevalの作成を目標として、そこまでの道程を小目標に分割し、 SICP4.1のハードルにとりかかる前にほんの少しステップを置いてみたいと思います。 ちなみに実装はlinux上のmit-schemeで行います。他の処理系を使う方は適宜読み替えてください。 以下が少目標のリストです。 基手続きreadで式を読む readで入力した式をオウム返しにするevalを実装する 連想配列を作る 連想配列から値を取り出す関数を作る 簡易schemeのグローバル環境を作る readで入力したシンボルに束縛されている値を取り出すevalを

    SICP4.1にとりかかる前に足し算evalを作る - mmitouの日記
  • 継続について更に考える - 彷徨えるフジワラ

    世界の隅で誰ともなしに書いた先日のエントリに、光の速さでコメントが書き込まれていてちょっとビックリ&わざわざありがとうございます > id:practicalscheme, id:hominato コメントを解釈 とりあえず、頂いたコメントそのままだと、まだちょっと理解が及ばないので、無い知恵を絞ってコメントを解釈してみる。 id:practicalscheme 氏のコメントは: Schemerからすると話が逆で、継続渡しの方がモデルとして先にあって、スタックを使う通常の手続き呼び出しはその特殊例の最適化戦略なのです。だから継続を説明しようとすると継続渡しの話になってしまうのかもしれません。 継続渡しはあくまで計算過程のモデルで、その実装としてスタックを使うこともでき、現実のScheme処理系もスタックはスタックのまま継続を実装しています。動的に継続渡し形式のようなコードを生成するわけでは

    継続について更に考える - 彷徨えるフジワラ
    sokutou-metsu
    sokutou-metsu 2011/08/31
    継続の話
  • W3C-DTF文字列をSRFI 19の日付オブジェクトに変換する関数

    sokutou-metsu
    sokutou-metsu 2011/08/13
    GaucheでW3C-DTFを扱う方法
  • 48時間でSchemeを書こう - Wikibooks

    Web上にあるほとんどのHaskellチュートリアルは言語についてのマニュアルのような教え方をしようとしているようです。それらには言語の文法、概念が少し載っていて、読者に対話環境でいくつかの簡単な関数を作るように指示します。よく機能する有用なプログラムの書き方は大抵最後にまわされるか、そもそも省かれていたりします。 このチュートリアルは違う方針を取ります。コマンドライン引数解析から始めて、完全に機能するR5RS Schemeのかなり大きなサブセットの実装まで進みます。道すがら、Haskellの持つI/O、mutable state、dynamic typing、エラー処理、そして構文解析機能を学びます。このチュートリアルを終える頃には、あなたはHaskellとScheme両方がかなり良くわかるようになっているはずです。 このチュートリアルの対象読者は主に以下の2種類です。 LispかSch

  • 「計算機プログラムの構造と解釈(SICP)」を読み終えて by なつたん - なつたん

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

    「計算機プログラムの構造と解釈(SICP)」を読み終えて by なつたん - なつたん
  • 本を読む 「Shibuya.lispテクニカルトーク#3」観覧

    Lispコミュニティ「Shibuya.lisp」のテクニカルセミナーイベント「Shibuya.lispテクニカルトーク#3」が開催されました。今回はGaucheの川合史朗(Shiro)さんも登壇するなど、やはりすごく面白い話をいろいろ聞けました。 以下、観覧メモ。間違いがあったらご指摘ください。 今回は、メイントークでCommon Lispの2件も継続を活用していたのが印象的でした。継続は力なり。あと、Lispとは関係ありませんが、なぜかプレゼンターのうち2人もタイル型ウィンドウマネージャを使っている方がいました。 開会の挨拶(佐野匡俊) 前回からのアップデートが紹介されました。なんといっても、Shiroさんが開発した、Lingrを継ぐチャット「Chaton」が大きいトピックでした。一方、逆引きCL/Scheme/Clojureは停滞ぎみで、知りたい側の人の声が欲しいとか。 次回のテクニカ

  • [Gauche] SMTPクライアントライブラリ - SumiTomohiko's blog

    SMTPのクライアントを作成してみました。といっても、単にサーバに接続してコマンドを送っているだけです。エンコードなどは行いません。 #! gosh ;; -*- coding: utf-8 -*- (use gauche.net) (define (gsmtp-sendmail host port from to body verbose) (let* ( (sock (make-client-socket 'inet host port)) (input-port (socket-input-port sock)) (output-port (socket-output-port sock))) (define (display-log s) (if (equal? verbose #t) (display s) #t)) (define (receive-response) (let

    [Gauche] SMTPクライアントライブラリ - SumiTomohiko's blog
  • Welcome to the SICP Web Site

    Wizard Book n. Hal Abelson's, Jerry Sussman's and Julie Sussman's Structure and Interpretation of Computer Programs (MIT Press, 1984; ISBN 0-262-01077-1), an excellent computer science text used in introductory courses at MIT. So called because of the wizard on the jacket. One of the bibles of the LISP/Scheme world. Also, less commonly, known as the Purple Book. from The New Hacker's Dictionary, 2

  • 1