タグ

ブックマーク / www.shiro.dreamhost.com (17)

  • Scheme:使いたい人のための継続入門

    使いたい人のための継続入門継続渡し形式call/ccは普通の関数call-with系関数call-with-procedurecall-with-continuation-procedurecall-with-current-continuation評価順序と継続call/ccパズルお手元マルチスレッド部分継続reset/pcとcall/pc環境破壊と部分継続部分継続の使用法PRINT-AND-NEXT-REPL議論質問お手元マルチスレッドのサンプルプログラムについて 使いたい人のための継続入門 とりあえず殴り書き。 くどかったり冗長な文章になってたり、重複してたり、間違ってたり、 おおいなる勘違いをしてたり、恥をカいてたりするかもしれないけどご愛敬。 藁をもつかみたい気持ちで継続を使えるようになりたい人は読んでみてください。 ただし所詮は藁です。(w 継続渡し形式 例によって階乗fa

    nozom
    nozom 2007/02/07
  • Lisp:S式の理由

    S式は人に優しいか Shiro: Lispの不人気の理由として筆頭に上げられるのが、括弧だらけの 独特の見た目。とっつきにくい、一般的な表記法と違っていてわかりにくい、 等々、様々なことが言われてきました。しかし、 S式を捨てたLispも開発されましたが 流行ったとはいい難く、Lispな人々はいまだに括弧に固執しているかのようです。 S式のメリットをLisperに尋ねれば、エディタがどうの、マクロがどうの、といった 回答が真っ先に返って来ると思うんですが、そういう理屈をいくら理解しても S式がダメな人がS式を好きになったりはしません。どうも、もっと根的な 感覚に大きな隔たりがあるような気がします。非Lisperから理解しがたい、 Lisperの持つ感覚とはどんなものなんでしょうか。Lisp脳から見た世界は どんなものなのでしょうか。 構文木を人間が書く? S式は言ってみれば言語の構文木そ

    nozom
    nozom 2007/01/28
  • Lisp:よくある誤解

    Lispについてのよくある誤解と、その中にあるちょっとした真実 はてなの質問: プログラミング言語で最強(スケーラブル)なのは、 Lispだと思われます。 http://jp.franz.com/index.html しかし、 世間ではマイナー言語のようです。 なぜでしょうか。 についた回答のいくつかには、「Lispを少しだけかじった人がしがちな誤解」が 含まれてるようなので、それをネタに少し解説してみます。 ただ、誤解が生じるのは、やっぱりそれなりの理由があって、従ってその 誤解の中にも(条件つきの)真実が含まれていることがあります。 そのへんまでをも含めて考えてみましょう。以降、引用は回答からです。 Lispはスクリプト言語? 一昔前まで、これらのスクリプト系の言語は「とてつもなく遅い」のが嫌われる最大の要因でしたが、最近のコンピューターの性能向上でようやくRuby,Python,Li

    nozom
    nozom 2007/01/08
  • Lisp:よくある正解

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

    nozom
    nozom 2007/01/05
  • Gauche:FAQ

    GaucheのFAQの叩き台、にしてみる。 一般的な質問Q. Gaucheって何て読むの?Q. なんでGaucheって名前にしたの?Q. gosh の 'O' はどこからきたの?Q. 世の中にはたくさんScheme処理系があるのに、何故また新たな処理系を作ったの?Q. Gaucheはどこで手に入りますかQ. たくさんバージョンがあるんですが、どれを使えば良いのでしょうQ. Gaucheのライセンスは?Q. GaucheのマニュアルはありますかQ. Gaucheに関するメイリングリストはありますかQ. Gaucheを使っててバグを見つけたんですがQ. Gaucheの開発を手伝いたいのですがコンパイル・インストールに関する質問Q. Gaucheはどういったプラットフォーム上で使えますかQ. rpmパッケージはありますかQ. configureにえらく時間がかかるんですが、何とかなりませんか。な

    nozom
    nozom 2006/11/15
  • ポール・グレアムのエッセイと和訳一覧

    ポール・グレアムのエッセイと和訳一覧 (originally maintained by naoya_t) Paul Grahamのエッセイ(原文)と、公開されている日語訳のリストです。 見つけたらor 訳したら、自由に追加して下さい。複数の訳が存在する場合は全て追加してください。 A Fundraising Survival Guide 資金調達サバイバル・ガイド (lionfan) The Pooled-Risk Company Management Company リスク共有型の企業管理会社 (lionfan) Cities and Ambition 都市と野心 (lionfan) Disconnecting Distraction 気晴らしを断ち切る (lionfan) Lies We Tell Kids 子供につく嘘 (lionfan) Be Good 良くあれ (sirocc

    nozom
    nozom 2006/10/10
    あとで読む
  • Shiro:log:2005前半

    最新:Shiro 後: Shiro:log:2005後半 前:Shiro:log:2004後半 (2005/06/22 21:02:54 PDT) なにやらokujiさんからMusical Baton というのが回ってきた。音楽をネタに自分語りをやる企画、なのかしらん。 自分はあまり日常的に音楽を聴く人ではないので 質問の対象外である気がするけど一応やってみる。 Total volume of music files on my computer: HDDから音楽を聴く習慣がほとんどない。midiファイルが2.5MBくらい、 クラシックピアノ曲中心。 The Classical MIDI Connection, Kunst der Fuge あたりをちょくちょく見ている。 Song playing right now: Ray Bumatai: All the things I sai

    nozom
    nozom 2006/04/23
    (2005/02/26 15:24:15 PST)Lisp脳
  • Scheme:マクロ:anaphoric ifの代替

    nozom
    nozom 2005/09/18
  • WiLiKi:RtS:Shiro

    Scheme:RoadToScheme 最初にSchemeを使ったのはいつ頃でしたか、またその処理系は? 「Lisp系言語」というくくりなら、確か1991年頃。古屋で手に取ったこのを読んで ちくちくコードをMS-DOSマシンに打ち込んだのがはじまり: 小西弘一・清水剛 : 「Cプログラムブック III -- Lisp処理系の作成 --」 株式会社アスキー, 1986 こののはWiil'o Lispという独自処理系。一応Lisp-2 (変数と関数は別名前空間) だったと思う。 その後処理系に興味を持って、自分で簡単な組み込みLisp処理系を作ったり してた。で、手持ちのDOSマシンでも動かせるLispは無いかしらんと 探して見つけたのがSCM。 だったと思う。それがSchemeとのファーストコンタクト。 どうしてSchemeを使ってみようと思ったのでしょう 上に書いた通り、最初はDOS

    nozom
    nozom 2005/09/10
    Gaucheの作者Shiroさんのインタビュー風自伝
  • Gauche ユーザリファレンス: Top

    Gauche ユーザリファレンス 書は、R5RS準拠のScheme処理系、Gaucheのリファレンスマニュアルです。 Gaucheのバージョン0.8.14に対応します。

  • Scheme:Schemeプログラマのレベル10

    emeitchさんのリクエストより。元ネタは Perlプログラマのレベル10。 私家版、Schemeプログラマのレベル10 くれぐれも気にしないように。 レベル0 SchemeとかLispとかいうカッコだらけですごくわかりにくい言語があることは知っているが、 最強とか主張する信者がいるらしいのでなるべく関わらないようにしている。 EmacsLisp?もその親戚らしいけどコードを見ただけでくらくらする。 でも便利なマクロは自分の.emacsにコピペしている。 レベル1 Schemeに関するwebサイトを見たり、大学の講義での説明とかを聞いて、 factorialとかappendとかreverseとかを書いたり、 ネストした木構造のノードの数を数えたりできる。 でもそれが何の役に立つかわからない。こんな言語で実用的な プログラムが書けるなんて信じられない。 カッコの位置を間違えて動かないプロ

  • Beating the Averages

    普通のやつらの上を行け ---Beating the Averages--- 著者:Paul Graham Copyright 2001 by Paul Graham これは、Paul Graham: Beating the Averages を、原著者の許可を得て翻訳・公開するものです。 プロジェクト杉田玄白正式参加テキスト。 <版権表示> 和訳テキストの複製、変更、再配布は、この版権表示を残す限り、自由に行って結構です。 (「この版権表示」には上の文も含まれます。すなわち、再配布を禁止してはいけません)。 Copyright 2001 by Paul Graham 原文: http://www.paulgraham.com/avg.html語訳:Shiro Kawai (shiro @ acm.org) <版権表示終り> 文中、Eric Raymondの "Ho

  • What You'll Wish You'd Known

    知っておきたかったこと --- What You'll Wish You'd Known Paul Graham, January 2005 Copyright 2005 by Paul Graham. これは、Paul Graham:What You'll Wish You'd Known を、原著者の許可を得て翻訳・公開するものです。 <版権表示> 和訳テキストの複製、変更、再配布は、この版権表示を残す限り、自由に行って結構です。 (「この版権表示」には上の文も含まれます。すなわち、再配布を禁止してはいけません)。 Copyright 2005 by Paul Graham 原文: http://www.paulgraham.com/hs.html語訳:Shiro Kawai (shiro @ acm.org) <版権表示終り> Paul Graham氏のエッセ

    nozom
    nozom 2005/02/23
  • Hackers and Painters(ハッカーと画家)

    ハッカーと画家 ---Hackers and Painters--- Paul Graham, May 2003 Copyright 2003 by Paul Graham. これは、Paul Graham:Hackers and Painters を、原著者の許可を得て翻訳・公開するものです。 <版権表示> 和訳テキストの複製、変更、再配布は、この版権表示を残す限り、自由に行って結構です。 (「この版権表示」には上の文も含まれます。すなわち、再配布を禁止してはいけません)。 Copyright 2003 by Paul Graham 原文: http://www.paulgraham.com/hp.html語訳:Shiro Kawai (shiro @ acm.org) <版権表示終り> Paul Graham氏のエッセイをまとめた『ハッカーと画家』の 邦訳版が出

  • なんでも継続

    Shiro Kawai まだ下書き Schemeの特徴をあげるときに、「継続」や「call/cc」が出て来ないことはない。 でも、R5RSのcall/ccの項をいくら読んでも、どうもよくわからない。 call/ccを使えばC言語のbreakみたいなのとか、コルーチンとかいう スレッドもどきとかが書ける、というのはわかったけど、一体そういうのが書けて 何が嬉しいのか、そこんとこがピンと来ないんだ。 今、そこにある継続 プログラミングの世界の概念には、禅の公案のようなものがある。 それを説明する文章はほんの一文なのに、最初に目にする時、 その文は全く意味をなさない、暗号のように感じられる。 だがひとたびその概念を理解すると、 その概念の説明は確かにその一文で説明されているのがわかるのだ。 そんな、「分かれば分かる」という禅問答の中でも 「継続」は最も謎めいたものの一つと言えるだろう。 文献を

  • Gauche - A Scheme Interpreter

    Gauche(ゴーシュ)は、スクリプトインタプリタとしての使い易さに重点を置いて 開発を行っているR5RS準拠のScheme処理系です。日常業務の中でのちょっとした処理を行う スクリプトを気軽にSchemeで書きたいなあ、という願望のもとに、 起動が速いこと、システムへのアクセスが組み込まれていること、 最初から多国語対応を考慮していること、 リスト処理ライブラリとして他のC/C++プログラムから簡単にリンク可能であること、 などを目標としています。 Gaucheは今のところ、いくつかのUnixプラットフォーム で動作します。 実装されている機能の概要については、 機能のページをご覧ください。 News 詳しい変更はChangeLogをどうぞ。 また、最新の開発状況はSubversionリポジトリで知ることができます。 2008/2/13 Gauche 0.8.13: Lots of sm

  • A Slice of My Life - Practical Scheme

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

  • 1