タグ

schemeに関するNaruhodiusのブックマーク (12)

  • Practical Scheme

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

    Practical Scheme
  • Karetta|Gaucheプログラミング(立読み版)

    はじめに書の構成 (1)書の対象読者書の表記書の使い方執筆時点でのGaucheバージョン謝辞第1部: 思想LispとScheme (4)Gaucheの特徴 (1)すべて式であるすべてリストである (1)lambdaは空気のような存在である (2)プログラミングとは名前付け(bind)であるすべて再帰である (2) (2)Schemeのすごい点 (4)すべてオブジェクトである (もしそれがお望みなら)Gaucheの設計思想や誕生の背景Schemeの評価モデルとは? (3)「Lisp脳」の謎に迫る - Schemeプログラマの発想第2部: 実用Schemeスクリプトを書こうSchemeスクリプトを書く (1)コマンドライン引数の値を得るユニットテストを書く (1)CGIを書こうSchemeスクリプトをCGIとして実行するwww.cgiライブラリを利用する (1)手軽にHTMLを生成する

  • approx-search.el

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • Schemeを作ろう 第1回

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

  • 横着プログラミング 第10回: scmail: Scheme によるメールフィルタ

    最終更新日: 2004-03-11 (公開日: 2003-02-18) Unix Magazine 誌に 2002年1月号から 2003年2月号にかけて連載し ていた記事の元の原稿です。 プログラミングについての考え方に影響を与えないような言語は 知る価値がない -- Alan Perlis *1 Lisp というプログラミング言語がある。プログラミング言語につ いて語られるとき、Lispほど物議を醸す言語はないように思う。 Lispは 1950年代後半に生まれた、高級言語としては最古に近い言 語である。しかし、一部のプログラマの間ではいまだに強い影響力 を持っている。筋金入りの Lisper (Lispプログラマ) である Paul Graham 氏が昨年に発表したエッセイ「普通のやつらの上を行け」 *2 では、Java, Python, Perl, C などの他の言語と比べて Lisp

  • Scheme - Wikibooks

    Schemeでは一貫して括弧の入れ子構造になっているのがおわかりになると思います。これがまさにSchemeの言語仕様がシンプルであるという所以です。Schemeではプログラムの実行を進めていくことを「評価」と呼びますが、これも簡単に言えば数式を変形して簡単にしていくことに似ています。たとえば、数学では次のように式を変形し、値を求めていきます。 これ以上簡単にしようがない「4」が出てきた時点で変形は終了です。これで答えが求まりました。このような変形をSchemeで表せば次のようになります。 (+ 1 (+ (- 4 2) 1)) ↓ (+ 1 (+ 2 1)) ↓ (+ 1 3 ) ↓ 4 数学の表記とは数字や記号の順番が異なりますが、何となく似た雰囲気はつかめると思います。入れ子になった括弧は、数学と同様に内側から評価してきます。プログラムといっても、数学の式を独特の表記で書き換えたような

    Scheme - Wikibooks
  • Scheme 入門 1. Scheme 処理系のインストール

    1. Scheme のすすめ Scheme を使うと、 美しいコードを書くことができます。 プログラミングが楽しくなります。 これが Scheme を習う唯一の理由です。 Scheme を使って実用的なプログラムを書こうとするとあてが外れるでしょう。 しかし、優秀なハッカーは Scheme 好きが多いので、Scheme を習っておいて損は無いと思います。 実際、最も優れたコンピュータ科学の教科書の1つである Structure and Interpretation of Computer Programs (SICP) 日語訳:計算機プログラムの構造と解釈 のプログラム例も Scheme で書かれています。 また、GNU は拡張言語に guile という Scheme を採用しています。 guile は MS-Word や Excell のマクロのようなもので、 簡単なスクリプトで、アプ

  • Scheme - Wikipedia

    この中でカール・ヒューイットが設計した規則ベースの言語 Planner はあまりに複雑な機構を持っていたため当初設計された全機能の実装は困難であり[注釈 9]、サスマン等はそれをサブセット言語の Micro-Planner として実現し、さらには、 Planner の流れを汲んだ独自言語として Conniver を作成した。 同じくカール・ヒューイットが設計したアクタ言語 Plasma (Planner-73) も複雑な機構を持っていたため、MacLisp による実装が存在したものの、その動作の仕組みを理解するのは困難であった。サスマン及びガイ・スティール・ジュニアは Plasma を理解するために、不要な機能を省いた LISP 構文を持つ小さな Plasma を設計した。 上記の Plasma からその小さな Plasma の設計に至る過程は Planner から Micro-Plann

    Scheme - Wikipedia
  • 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
  • Schemeの好きなところと嫌いなところ - ヤドカリデンキ商会(ブログ版)

    あくまでへっぽこSchemeファンの現時点での個人的な感想として挙げておきます。おかしなところはツッコミをもらえるとありがたいです 好きなところ その1 手続きを単なる値として扱える 手続き(lambda/クロージャ)を普通に変数で扱えるというのはやっぱり気持ちいいです。JavaScriptもそうですが。例えば、単なる値を扱っていた部分をクロージャに書き換えることでプログラムの機能を強化する、といったことができたり その2 レキシカルクロージャが強力 「環境をキャプチャできる」というレキシカルの意味に気づいたときは、ぱっと視界が開けたような気がしました。オブ厨の人がオブジェクト指向に目覚めるときって、きっとこんな感じなんだろうなという その3 Gaucheがある (特に日で)Schemeを使う人はなんだかんだ言ってやっぱりこれが一番大きいのではないかと。下のコメントでshiroさんが書か

    Schemeの好きなところと嫌いなところ - ヤドカリデンキ商会(ブログ版)
  • もうひとつの Scheme 入門

    勾配の緩やかな初心者向け Scheme 入門ページです。 コンピュータは使ったことがあるが、プログラミング経験があまりない人を想定しています。 Scheme の解説はすでに山ほど優れたものがありますが、あえて解説記事を書いてみました。 Scheme のような抽象的な話題は波長が合えばすんなりと理解できますが、あわないと全く理解できません。 他の解説を読んで今ひとつよく理解できなかった人は試しに読んでみてください。 この記事の目標はコンピュータ科学の教科書の決定版である SICP を読める程度の Scheme の知識を提供することです。 目次: 処理系のインストール Scheme を電卓代わりに使う リストを作ろう 関数を定義しよう 分岐 局所変数 繰り返し 高階関数 入出力 代入 文字、文字列 シンボル型 連想リスト、ハッシュ表 ベクトルと構造体 構文の定義 (マクロ) 継続 遅延評価 非

  • EoPL reading (56) 2.2 An Abstraction for Inductive Data Type - yamanetoshi's diary

    昨晩のヤリ残しな試験を書いた。以下な部分。 (and (pair? variant) (memq (car variant) (car type-info)) #t)試験は以下。 (test* "argument is not pair" #f (bintree? 1)) (test* "car of argument is not 'leaf-node and 'interior-node" #f (bintree? '(x)))あら? 上記は以下の通りパスしてるんですが test argument is not pair, expects #f ==> ok test car of argument is not 'leaf-node and 'interior-node, expects #f ==> ok上記の試験、ってか実装を見るに述語な手続きは car がナニだったら OK な

    EoPL reading (56) 2.2 An Abstraction for Inductive Data Type - yamanetoshi's diary
  • 1