ブックマーク / practical-scheme.net (14)

  • Lisp:よくある正解

    Lispについての正しい認識と、それでもLisperがLispを使う理由 yoriyukiさんのエントリがなかなか 真実を突いていたので、ネタにさせていただきます。 原因のほとんどは経路依存性とかネットワーク効果によるもので、Lisp自体の性質とは無関係だと思います。と言った上で、私が何となくLisp系言語を使わない理由としては、 Too dynamic: 実行時にコードが差し替えられることがすごい利点だ、と言っている人がいましたが、逆に言えば今どのコードが走っているか理解しにくい、という欠点にも繋がる。 Meta programming:S式のおかげでMeta Programmingがしやすいが、Meta Programmingを多用したプログラムは理解しにくい。 動的型付け:利点でもあるけど、特有のバグを引き起こす。 識別子に関数と値の2種類が別々にバインドできる。これは私には非常に美

    Lisp:よくある正解
    yad-EL
    yad-EL 2014/01/21
  • R6RS:翻訳:Rationale:Semantic concepts

  • Practical Scheme

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

    Practical Scheme
  • Gauche:Gauche-gtk-0.4.1 on Gauche-0.9

  • Scheme:メタオブジェクトプロトコル

    メタオブジェクトプロトコル(MOP)はCommon Lispのオブジェクトシステムに 採り入れられた概念。Kiczales他の The Art of the Metaobject Protocol が元祖。 Schemeには標準ではついていないが、MOPを使えるように したオブジェクトシステムの実装はいくつかある。 Tiny CLOS Kiczales自身による、CLOSのMOPの簡易版のSchemeによる実装。非常にシンプルで、 MOPそのものの原理を知るにも良い。また非常にポータブルなため、 さまざまなScheme処理系で走らせることができる。 STklos Tiny CLOSを拡張し、またクリティカルな部分を処理系内部で実装することにより 効率を上げている。MOPを使って、GUIツールキット (現在の実装はGtk、 以前のバージョンはTk) を綺麗にSchemeのオブジェクトシステム

  • Scheme:ExplicitMonad

    Shiro: SchemeでMonadを書こう、という話はちょくちょくある。 OlegさんのMonadic Programming in Scheme Neelakantan KrishnaswamiのMonads in Scheme teranishiさんのページ howm wiki - モナド 実用的な見地からは、Monadが便利なのはモナド則を満たす基演算を定義 しておけば他の色々な操作がジェネリックに行えることだ。 (call-with-iteratorsさえ定義しておけばgauche.collectionの色んな ジェネリック関数が使えるようになりますよ、というのに似ている)。 ただ、Schemeのような実行時型判定を行う言語でMonadを使おうとすると どうもすっきりいかない。というのは、Monadの基演算が引数の型だけでなく 戻り値の型でディスパッチする必要があるからだ。

    Scheme:ExplicitMonad
  • Gauche:testについて

    Shiro(2009/07/07 02:59:40 PDT): Shibuya.lisp TT#3の懇親会にて、gauche.testの機能追加の話がちょっと出たので考えてみた。 使い勝手が良くなるなら機能を足すこと自体は問題ない。ただ、やたらにAPIを増やすのは却ってわかりづらいので、組み合わせで済むものなら(よっぽど便利にならない限りは)足さないんじゃないかな、というのはある。 なので、私があまり積極的でない機能を足してほしいという方は、「こういう理由で便利なんだよ!」と私を説得してくださいな。 入れたいな、という機能 異常系のテストで、想定したconditionが上がっていることを簡単にテストしたい 0.8.14までは<test-error>オブジェクトのひとつのインスタンスが*test-error* に束縛されてて、結果として上がってくるものが<test-error>かどうかを 調

    Gauche:testについて
  • Seminar:Gauche/Kahua

    Gauche/Kahua セミナー Gauche/Kahuaセミナー2008 Fall 開催のご案内 Kahuaプロジェクト、HOPプロジェクトは2008年09月13日に下記の 要領でGauche/Kahuaセミナー2008 Fallを開催します。 開催要領 表題:「Gauche/Kahuaセミナー2008 Fall」 日時:2008年9月13日(土) 13:30 〜 17:30 場所:秋葉原ダイビル13F東京大学情報理工学系研究科秋葉原拠点 主催: Kahuaプロジェクト、HOPプロジェクト 協力: 東京大学情報理工学系研究科創造情報学専攻 定員: 40名 参加費:無料 講演内容: (Gauche on Rails) への道 吉田裕美 (EY-Office) Kahuaプログラミングスタイル 備前達矢 (タイムインターメディア) 終了いたしました

    Seminar:Gauche/Kahua
  • Scheme:リスト処理

    リスト処理の小技を書き留める。 数値リストのコンパクトな表現 single?pos+木の統合集合の統合リストの分解Quasiquote Magicリストへの要素の追加、削除ちょっと変わったリスト上の繰り返しmapl逆mapl与えられた木から、子→親への対応を作る木の統合 (親 子 孫 ひ孫 …) 数値リストのコンパクトな表現 ひげぽんさんのところより: 整列済みの number のリストがある。 '(1 3 4 5 6 12 13 15) このようなリストで数が連続している部分は '(1 2 3) -> '(1 . 3) のように両端のみを書くような記法を導入する。 最初の例のリストであれば以下のようになる。 '(1 (3 . 6) (12 . 13) 15) このようなリストの変換をするコードを書きたい。 ひげぽんさんの実装は上記エントリを参照。 Shiro (2008/09/25 03

    Scheme:リスト処理
  • Gauche:MeCab

    MeCabの Gaucheバインディングを作っていく様子を実況公開するコーナー。 普通にやれば1日仕事と思いますが、説明を加えながら時間をかけてのんびりやります。 製作の過程はCVSに残していきます。 第1の日能書きどうやんの?下準備テンプレート自前テンプレート動くかな?ダウンロード質問・コメント第2の日修正autogen.shconfigure.acMakefile.inmecab.scmmecab.stubtest.scmダウンロード第3の日創造の苦悩autotools地獄API瞥見初期化クラス不安ダウンロード第4の日中央集権の愛、あるいは構文的な予兆生/死autotools地獄(2)インスタンスの生成インスタンスの生成(2)インスタンスの消滅生/死(2)テスト予告ダウンロード質問・コメント第5の日死のフーガautotools地獄(3)文字列にとって文字列とは何か尻ぬぐい破壊/狂気ダウ

    Gauche:MeCab
  • gauche.night

    プレスリリースイベント概要口上説明gauche.nightブログ日時2008-03-08 (土) 17:00開場 18:00開演会場TOKYO CULTURE CULTURE(お台場)チケット出演実況中継二次会主催団体感想、反響リンク集表示的意味論と操作的意味論について プレスリリース gauche.night:プレスリリース イベント概要 口上 書籍「プログラミングGauche」がオライリー・ジャパンからついに刊行。 その発売を記念してgauche.nightが帰ってきた! SchemeとGaucheとλとS式を愛するすべての人に贈るマクロな一夜。 説明 第1部: 座談会「R6RSを斬る」 第2部: デモ大会「gauche.gong」 gauche.nightブログ http://karetta.jp/blog/gauche-night 日時 2008-03-08 (土) 17:00開場

    gauche.night
    yad-EL
    yad-EL 2008/01/16
  • Lisp:よくある正解 - Lispについての正しい認識と、それでもLisperがLispを使う理由

    Lispについての正しい認識と、それでもLisperがLispを使う理由 yoriyukiさんのエントリがなかなか 真実を突いていたので、ネタにさせていただきます。 原因のほとんどは経路依存性とかネットワーク効果によるもので、Lisp自体の性質とは無関係だと思います。と言った上で、私が何となくLisp系言語を使わない理由としては、 Too dynamic: 実行時にコードが差し替えられることがすごい利点だ、と言っている人がいましたが、逆に言えば今どのコードが走っているか理解しにくい、という欠点にも繋がる。 Meta programming:S式のおかげでMeta Programmingがしやすいが、Meta Programmingを多用したプログラムは理解しにくい。 動的型付け:利点でもあるけど、特有のバグを引き起こす。 識別子に関数と値の2種類が別々にバインドできる。これは私には非常に美

    Lisp:よくある正解 - Lispについての正しい認識と、それでもLisperがLispを使う理由
  • Scheme:テキスト処理

    テキスト処理に出て来るちょっとしたパターンを集めてってみる。 処理系はGauche。 これいいですね。Cook Book に発展するといいですねえ。--nobsun パフォーマンスはともかく、文字列が、文字のリストであるなら、テキスト処理は格段に書きやすくなるでしょうね。-- 2002/09/04 09:39:56 PDT 戯:同じく、各WikiPage内の文章の文字(!)が、べた文字列じゃなくWikiNameになっていたならば、WikiNameは格段に作りやすくなるでしょうね(^^;;; 2002/12/13 17:28:16 PST CSV関連の関数についても、扱って欲しいです。--yasu 行末のコメントを除くbase64エンコーディングgrepTABを空白に変換するファイルfoo.txtを一行づつ読み込むコマンドの出力を取る文字列を(空白などで区切られた)単語に分割行末の改行文字を

    Scheme:テキスト処理
  • Practical Scheme

    ->English 10/5/2001 初出 5/30/2002 追記 6/10/2002 英語版へのリンク追加 「プログラミング言語は満載した機能を特色の第一とするものではない。 あとになって機能の追加が必要と判明するような弱点と制限を取り除いて設計すべきである。」 (アルゴリズム言語Schemeに関する第五改訂報告書、犬飼 大訳 [1])。 言語の機能とライブラリ ポピュラーな言語に親しんできたプログラマの多くは、 Schemeに触れた時、こう感じるんじゃないか。 「一体こんなに機能の少ない言語で、どんなプログラムが書けるっていうんだ。」 Schemeの規格書はほんの50ページしか無い。 Schemeプログラマはそれを言語の簡潔さの証とかなんとか言ってるけど、 入出力は最低限のものしかないし、作ったファイルを消すことさえ出来ない。 文字列処理もC言語の標準ライブラリ以下じゃないか。 ス

    Practical Scheme
  • 1