タグ

schemeに関するsomemoのブックマーク (18)

  • 48時間でSchemeを書こう - Wikibooks

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

  • 『計算機プログラムの構造と解釈』(SICP)を読み終えて - きのこる庭

    ようやくSICPが終わった。念願の夢の1つを叶えた。「ポインタを理解する」「コンパイラをつくる」とかから始まり 今年に入って 技術者として個人的にやりたかった事を3つ実現できた。良い調子。 サムネは記念にマッカーシー先生(再使用が許可された画像)。 完了までの期間 3.5ヵ月程度。平日は帰社後に2~3時間ほど、毎週土日はSICPに費やした。 学んだこと・できるようになったこと 1. より抽象的に物事の仕組みが考えられるようになった。 (「言語」という制約されたドメインを取っ払って純粋に実装について考えられるようになった) 2. 再帰のコードは悩まなくてもスンナリ頭に入るようになった。 3. Eval & Apply の陰陽によるプログラムの成り立ちを理解した。 4. 数学・コンピュータ科学に関する以下のことが人に説明できる程度には身についた。 - Newton法 - エラトステネスの篩 -

    『計算機プログラムの構造と解釈』(SICP)を読み終えて - きのこる庭
  • 非公式PDF版SICPの全訳を公開しました - minghaiの日記

    また1年振りの更新となりかけました。 Andres Raba氏により2011年から開発が続けられている、非公式PDF版SICPを全訳しました。 ファイル 恒例のgithubです。 https://github.com/minghai/sicp-pdf jsicp.pdfが日語版の体です。 ejsicp.pdfはデバッグ用の日語・英語併記となります。 ライセンスはCC BY-NC-SA 3.0です。商業使用は認められないことにご注意下さい。 SICPとは何か? SICPとはMITが作成した何も知らない新入生向けのプログラミングの教科書です。 プログラミングと強調したことには理由があります。このは良くあるプログラミング言語の教科書ではなく、あくまでもプログラミングを勉強するための教科書だからです。このことはこのの中でも、最初の前書き、序文にて何度でも繰り返し強調されています。筆者達が

  • call/ccと古典論理のカリー・ハワード対応 - 再帰の反復blog

    「直観主義論理のカリー・ハワード対応」の続き。 call/ccと継続 call/ccというのは、gotoを強力にしたものだと思っておけば良い。ただしScheme以外のプログラミング言語では、あまり見かけない機能。 例えばブロック構造から抜け出すための命令がある言語を考える。どのブロックから抜け出すかはラベルで指定する。またラベルはギリシャ文字で表すことにする。とりあえず次のような感じになるだろう。jumpの部分を実行するとブロックから抜け出す。 :α{ ... ... jump α; ... // ここは実行されない }でも、ブロック自体が値を持っている(値を返す)ようにした方が汎用的になる。例えば、次のプログラムはflagが真ならxに1が代入され、偽なら2が代入される。 x = :α{ ... ... if (flag) { jump α 1; } ... 2; }値を返すにしても返さな

  • Schemeを作ろう 第1回

    Last update 1999/08/07 Scheme処理系の制作 第1回 (C)平山直之 無断転載は禁止、リンクはフリー 誤字脱字の指摘は歓迎 ゲームとスクリプト はい、また例によって行き当たりばったりな企画です。 といっても、相当長い間私の心の大きな部分を占めていた問題ではあります。 それは言語の処理系の必要性についての問題です。 ゲーム制作、特にRPG・アドベンチャーなどの「シナリオ」の重要性が高いものを作るのに必要不可欠なものに、「イベントスクリプトの処理系」というものがあります。ネットでもこうした「イベントスクリプトの処理系」について考える人が少なくないのも、こうした必要性の表われと言えるでしょう。 しかし、こうした処理系は、それぞれのプログラマが独自の文法でプロジェクトごとに作り直しているのが現状です。これが、コードの再利用、ひいては「気楽にゲームを作る」上での大きな障害に

  • Amazon.co.jp: Schemeによる記号処理入門: 猪股俊光, 益崎真治: 本

    Amazon.co.jp: Schemeによる記号処理入門: 猪股俊光, 益崎真治: 本
  • Practical Scheme

    このページでは、プログラミング言語Schemeの紹介、および 自作のSchemeのライブラリやアプリケーションの紹介をしてゆきます。 特に、ファイルをパーズしてテキストファイルを生成したりとか、 プロセスを監視したりとか、ちょっとしたGUIをでっちあげる と言った、職業プログラマとしてやってく上で避けて通れない雑用に便利な ライブラリが中心になる予定です。 SchemeはLisp系の言語で、見かけはLispに良く似ています。 Lispと聞いたら人工知能用言語だとか、もう古くさい言語だとか思われることも 多いんですが、CommonLispで書かれた実用的なアプリケーションはいろいろ ありますし、Schemeも拡張言語としてそれなりに使われています。 ただ、いかんせんマイナーな言語であることは間違いなく、メンテできる人が居ない とか他に分かる人が居ないという理由で採用が見送られることがあるのは

    Practical Scheme
  • Gauche(Scheme) でデバッグをする4つの方法 - higepon blog

    Gauche でコードを書いているときにコードが意図どおりに動かないことがあります。そのような場合にデバッグする方法を4つ紹介します。 前提 まず Gauche はリリースされている最新版を使った方が良いでしょう。Linuxのディストリビューションによってはパッケージが古い場合あります。 またScheme は関数型言語なので、デバッグの単位は関数(手続き)ごとに行うことが多いです。一つ一つの手続きが意図どおり動いているのか?を調べながら進めるのが基になります。 方法1 print デバッグ Gauche には今のところデバッガがありませんから基的には print デバッグがメインとなります。単純な print デバッグから見ていきましょう。 以下のような sum という手続きで print デバッグしてみましょう。 (define (sum n) (if (= n 1) 1 (+ n

    Gauche(Scheme) でデバッグをする4つの方法 - higepon blog
  • GaUnit::Tutorial.ja

    Tutorial.ja $Id: Tutorial.ja 450 2008-06-02 08:29:25Z kou $ 基 GaUnitを使った単体テストではテストをtest.unit.test-caseを継 承したモジュール内に書きます。 (define-module test-your-module (extend test.unit.test-case) (use your-module)) (select-module test-your-module) ... (provide "test-your-module") 下準備 ここでは, run-test.el を使ってテストを起動するようにします.run-test.elの設定は README.jaに書いているのでそちらを参考にしてください. run-test.elを使わない場合は以下のsymdiffディレクトリで以下の ように

  • The SLIB Portable Scheme Library

    Free SLIB is a portable library for the programming language Scheme. It provides a platform independent framework for using packages of Scheme procedures and syntax. As distributed, SLIB contains useful packages for all R4RS and R5RS Scheme implementations. Its catalog can be transparently extended to accomodate packages, both source and compiled, specific to a site, implementation, user, or direc

  • scheme - traceとslib : 404 Blog Not Found

    2006年04月16日01:22 カテゴリLightweight LanguagesTips scheme - traceとslib ひげぽんに助け舟を出そうとして遭難しかけたので備忘録。 ひげぽん OSとか作っちゃうかMona- - SICPを読もう - (3) 1章 - 手続きによる抽象の構築(1-30ページ) 再帰的なのはすぐ解ける。 ;(略) 反復が分からない。 traceすればいいじゃん、と思って、実例をこさえようとして、手元にscheme implementationがないことに気がつき、さくっとgaucheをインストールして....あれ?traceがない!? そう。実は私がschemeをちゃんと使ってたのはもう20年前。その頃はすでに人様が用意していた環境で作業(というか授業)していたので、traceが標準でないことなどすでにGCの彼方にすっとんでいたのであった。 ざくっと検

    scheme - traceとslib : 404 Blog Not Found
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • sicp : ページ 8 : Serendip – Webデザイン・プログラミング

    問題4.60 元の lives-near では重複する対が出てくるために結果の組み合わせ数が2倍になる。 (assert! (rule (lives-near ?person-1 ?person-2) (and (address ?person-1 (?town . ?rest-1)) (address ?person-2 (?town . ?rest-2)) (not (same ?person…続きを読む

  • 「計算機プログラムの構造と解釈」のためのプログラミング環境 | 林檎生活100

    Scheme を深く理解するために、「計算機プログラムの構造と解釈」を購入しました。「SICP」という略称や「魔術師」という俗称でも知られているこのは、かつて MIT のコンピューター科学科におけるプログラミングの入門講義で教科書として使用されていました。読み進めるにあたり、問題に解答するためにプログラミング環境が必要になったので、その環境を Mac OS X 上で構築する方法を記事にまとめました。 目次 Racket のインストール SICP Support for DrRacket のインストール SICP Support for DrRacket の使用方法 例:写真の描画 1. Racket のインストール Racket の Web サイトにアクセスし、下記のスクリーンショットの手順で、Racket をダウンロードします。なお、この記事では Racket 5.3.3 を使用しま

  • [sicp]行くぜ!(windowsでも)gauche

    Tweet 実験段階らしいけど、windows 用もあるんで セットアップ自体はすぐ終わる。 [ダウンロード] http://practical-scheme.net/gauche/download-j.html ダウンロードしてきて、展開して dos コマンドで 展開したディレクトリの "\bin" に "cd" で移動して "gosh" 打つだけで動く。 んで、前回書いたトレースも結城さんが書かれている通り、 "share\gauche\site\lib\ggc\debug\" にコピーすれば、この通り使える。 で、まー、しょーもないけど小技を一つ。 (この前 id:koki-h さんに教えてもらった 「普段から lisp 使ってますよ。便利ですよ。」にリスペクト。) 業務で asp.net やってて、結構面倒なのが テーブルの width 計算。 カラム1つ1つサイズ定義していって、

    [sicp]行くぜ!(windowsでも)gauche
  • SICP(計算機プログラムの構造と解釈)を読み終えて : Serendip – Webデザイン・プログラミング

    最後のC言語での実装の2問が残っているけれども、一旦これで終了とする。 2008年の11月に開始したので約1年と1ヶ月ちょっとかかったことになる。 SICP を読む過程で得たもの 1章で scheme での基的なプログラミングに慣れて、カッコの存在を忘れることが出来た。 弟子が尋ねた。「先生、私は先生がカッコをまるで魔術師のように扱っているのを常々敬服しています。どうすれば先生のようになれるのでしょうか?」 師「えっ?カッコ?あ、そうか。そんなものもあったな。いやあ、すっかり忘れておったわ」 このあたりでは、まだ再帰に慣れていなくて、末尾再帰の意味もよく解ってなかった。 また、高階手続きを普通に使えるようになった。 2章で抽象化の有用性やその導入方法を理解できた。 1章2章は数学的な知識が必要な部分も多く、その部分で苦労した。 2章のデータ抽象や3章の環境モデルでオブジェクト指向の舞台裏

  • Structure and Interpretation of Computer Programs

    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

  • つくって学ぶプログラミング言語 RubyによるScheme処理系の実装

    プログラミングをより深く理解するための近道は、プログラミング言語を実装してみること。SchemeのサブセットをRubyで実装していくことで、プログラムはどう実行されるのか、その基がはっきり分かります。 ※書はCC BYにより配布されています。上記の「買い物かごへ」ボタンからは有償で購入できます。無料で入手したい場合は、下記リンクよりダウンロードしてください。なお、有償版も無償版も内容は同一です。 EPUB版PDF版内容紹介プログラムは書けても、その基礎となっている計算機科学(コンピュータサイエンス) の理解があやふやな人を、著者は多く見てきました。プログラミングに自信があるという人が、もう一歩先に進める道を示したいというのが、この文書を書き始めた動機です。 この文書を読むことで次の効果が得られることを期待しています。 プログラミング言語とは何かを深く理解することで、プログラミングのレベ

    つくって学ぶプログラミング言語 RubyによるScheme処理系の実装
  • 1