タグ

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

  • Gauche:LandOfLisp

    ちょっとだけトリッキーなのはgame-readで、Common Lispのreadは 後続の空白文字(改行文字含む)を消費するので、 > (game-repl) とタイプしてRETを打った時、入力バッファは空で、game-read はすぐに ユーザの入力待ちになるのだけれど、Gaucheのreadは後続の空白文字を消費しない。 gosh> (game-repl) とタイプしてRETを打つと、REPLは閉じ括弧まで読んですぐに(RETを入力に残したまま) game-replを実行する。その中から読まれる game-read は最初に 残っていたRETを見るので、最初のread-line で空の文字列が帰ってくる。 移植版ではこのケースへの対応が入っている。 Shiro(2016/02/02 23:30:58 UTC): 現在の開発版Gaucheでは、REPLについては後続の空白を 読み飛ばす

    Gauche:LandOfLisp
  • Gauche:Gauchebox

  • Scheme:テストファースト

    開発の始めかた うーん,何を書けばよいかわからないので,とりあえず,私が何か Gaucheで作るときの手順でも書いてみます.- kou 前提 GAUCHE_LOAD_PATHは".:./lib:./src:${HOME}/local/share/gauche/site/lib"となっている. Gauche関係のものは~/work/gauche/以下に置いている. テストの実行はGaUnitに含まれているrun-test.elを使ってEmacs上で行っている. 下準備 プロジェクト(ちょっとしたものなら「ちょっとした」プロジェク トになる)用のディレクトリを作る.プロジェクト用ディレクトリ は以下のような構成となる.ここでは,プロジェクト名をXXXとする. XXX -+- lib ;; スクリプトを置くディレクトリ | +- test ;; テストスクリプトを置くディレクトリ % cd ~/

    Scheme:テストファースト
  • Gauche: プロファイラAPIの使用例

    Shiro(2010/03/25 02:58:10 PDT): 既にあるプログラムに対して、後つけで 「この手続きの間だけプロファイラをon/offできないか」という話。 http://practical-scheme.net/chaton/gauche/a/2010/03/25#entry-4bab1039-2c8af 特定の式の実行中だけプロファイリング プロファイラはScheme側からon/offできるので、コードが書き換えられるなら こんなことができる。 (define-macro (profiling expr) `(dynamic-wind profiler-start (lambda () ,expr) profiler-stop)) (profiling 式) とすれば式の実行中だけプロファイルがとれる。 例えば、適当に重い計算をでっちあげといて: (define (fib

    Gauche: プロファイラAPIの使用例
  • Rui:ParsingExpressionGrammar

    (2006/12/13 20:22:55 PST): Ruiからページを分離しました。 Parsing Expression Grammar入力の抽象化バックトラックの制御命名規則文字列に特化したスキャナ怠惰な文字列構築エラーの通知参考文献開発記録性能目標 (2006/11/25 07:45:58 PST)PEGによる拡張可能な文法 (2006/11/23 18:19:07 PST)高速化手法の検討 (2006/11/21 19:24:29 PST)中間報告 (2006/11/21 08:34:45 PST)体への統合 (2008/05/20 04:26:20 PDT)とりあえずコミット Parsing Expression Grammar (2006/11/16 21:44:07 PST): HaskellのParsecのようなコンビネータパーザを作っています。コンビネータパーザは、再

    Rui:ParsingExpressionGrammar
  • MzScheme:MzLib

    http://download.plt-scheme.org/doc/205/html/mzlib/index.htm libは > (current-library-collection-paths) ("C:\\Documents and Settings\\Imazu\\Application Data\\PLT Scheme\\205\\collects" "C:\\Program Files\\plt\\collects") > の中のmzlibから呼ばれる process.ssdate.sstrace.ss process.ss (require (lib "process.ss")) で使用可能となり C:\Documents and Settings\Imazu>mzscheme Welcome to MzScheme version 205, Copyright (c)

    MzScheme:MzLib
  • Scheme:generatorとdoとwhile

    0.9.3に入ったgeneratorについてはGauche:Generatorにまとめます。 部分継続?をつかったジェネレータについては、Scheme:部分継続:イテレータの反転を参照してください。 Scheme:初心者の質問箱から移動 doとwhileの違い?ミソはinc!?当の理由正しいgeneratorは?やってみよう継続とdynamic-wind doとwhileの違い? 最近のEcmaScriptにはジェネレータという機能があります。それと同じような感覚で使えるものをSchemeで実装してみようとこんなものを書きました。 (define (make-generator proc) (define next #f) (lambda () (if (not next) (call/cc (lambda(break) (proc (lambda arg (call/cc (lambd

    Scheme:generatorとdoとwhile
  • escm - Embedded Scheme Processor

    For version 1.1 escm is a filter program which takes a text with embedded Scheme exressions, copies it to the output with evaluating the Scheme expressions. You can use the power of Scheme to preprocess various text files, including CGI scripts. I borrowed the idea from ePerl, embedded Perl language. Conceptually escm is the same as ePerl except that escm uses Scheme instead of Perl. In implementa

  • Scheme:たらいまわしべんち

    たらいまわし関数Haskell (hugs December 2001版)Ruby (1.8.0-preview2)Gauche (0.6.8)クロージャ版delay/force版クロージャでは何故計算量が減らないか議論 たらいまわし関数 tarai(x, y, z) := y if x <= y tarai(tarai(x-1, y, z), tarai(y-1, z, x), tarai(z-1, x, y)) otherwise eagerに評価すると、不要な枝の先の先まで計算してしまって大いなる無駄となる。 lazy evaluationの利点が光る一品である。 参考: 竹内郁雄 どう転んでもLisp WikipediaJa:竹内関数(WikipediaEn:Tak (function)) たらいまわし関数 たらいまわしべんち Haskell vs Ruby たらいまわしべんち最終

    Scheme:たらいまわしべんち
  • 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:テキスト処理
  • Scheme:ライブラリ

    ライブラリが足りない、と言われ続けているScheme。 使えるコードは共有しなきゃ。 ということで、ライブラリの情報をタレ込むページ。 自作のものでも他作のものでも可。 とりあえず、各項目は ** で始めてもらって、名前と簡単な紹介、リンク、 使える処理系など。紹介が長くなりそうだったり、突っ込みや質問などが あったら、Scheme:ライブラリ:なんとか みたいなWikiページを 自由に作って下さい。 項目が増えてきたらカテゴライズするかも。 英語圏の方もいらっしゃると思うので、Scheme:Libraryも作りました。(yamasushi) Gauche専用のLibraryはGauche:Libraryに移動しました。(yamasushi) メタリンク家、CSW:Scheme-FAQ-Standards の Where can I find scheme libraries から。SR

    Scheme:ライブラリ
  • ArcCrossReference

    This is an unofficial wiki site of the reference document of the language Arc designed by Paul Graham. The main purpose of this site is to understand difference between Arc and other Lisp dialects; as a Scheme and Common Lisp programmer, it helps me a lot to understand Arc code. For the editing guidelines, see scheme:EditGuideline. You can put an inter-wiki link to SchemeCrossReference by "[[schem

  • GaucheFest:koguro

    GaucheFest:19th c-wrapperのinfoドキュメントをもうちょっとちゃんと書きます。 と思ってc-wrapper.c-ffiモジュールのドキュメントを書こうとしたら、関数やらクラスやらがたくさんあって面倒だったので、Schemeのコードからtexinfoのひな形(とそれにまつわるいくつかのファイル)を自動生成するスクリプトを作りました→Gauche:scm2texi (GaucheFest:16thでのgdocをもうちょっと強化させたものという位置づけですが、実際はgdocの存在を完全に忘れていて再実装していた...orz)。 GaucheFest:18th c-wrapperにstub生成の機能を追加しようかと考えています。 GaucheFest:16th ソースコードからtexinfo形式のドキュメント(のひな形)とMakefile.inを作成するコマンド(gdoc

    GaucheFest:koguro
  • WiLiKi: All Pages

    WiLiKi, a Wiki engine written in Scheme

    WiLiKi: All Pages
  • 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 継続渡し形式 例によって階乗fact

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

    yokota: MS Windows の cmd.exe 上で Gauche のスクリプトをバッチファイルのように見せかける方法を見つけました。 具体的には任意のGaucheスクリプトの先頭に以下を、 ;@rem -*- mode: scheme -*- ;@echo off ;gosh "%~f0" %* ;goto :__gauche_script_end 最後に ; ;:__gauche_script_end ; を挿入し、ファイルの拡張子を .cmd にします。 これによりWindows上で任意のスクリプトをそのまま実行ファイルにできます。 末尾部分はの3行それぞれ「次の行を確実に行頭にする」、「バッチファイルの終了時にgotoで移動する場所」、「cmd.exeがコマンド終了時に挿入する改行を抑制」という意味があります。その性質上1行目と3行目は単なる空行でも構いませんが、何か見え

    Gauche:scm2cmd
  • Scheme:マクロの効用

    普通のやつらの上を行けでLispにおけるマクロの効用が述べられているが, 「じゃあ具体的にマクロを使って『こりゃ便利だ』っていう例を見せてよ」 と言われてもなかなかすぐに出て来ない。 そこで、なんかいいマクロの使用例を思い付いたら書いてってみるコーナー。 通りすがりのマクロ初心者です。便利なマクロの具体例はすごく知りたいので、この項、期待してます。 Paul Graham「On Lisp」を読書中でなかなか良いけど、日語の解説があった方が理解が早まるので。 もくじ マクロを使う局面定型パターンの簡略化関数呼び出しのインライン展開の代用新しい構文による抽象化ミニ言語の埋め込み宣言的なコードに見せるコンパイル時の処理具体例クラス定義でのリーダーの生成リストの内包表記 (List comprehension)リストの構築他の処理系の移植 関連:Scheme:マクロの危険 マクロを使う局面 なん

    Scheme:マクロの効用
  • Practical Scheme

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

    Practical Scheme
  • CommonLisp:asdf

    Common Lisp の勉強を始めて、asdfというものの存在を知ったのですが、どういうものかわからないので勉強がてらにasdfのマニュアルを和訳してみます。訳があやしい部分は英語を残しておくので、誰かツッコミを入れるなりしてくれると助かります。 ---- はやみず (2007/04/12 20:51:10 PDT) asdf Manual: http://constantly.at/lisp/asdf/index.html asdf: another system definition facility このマニュアルでは、Common Lispプログラムとライブラリのためのシステム定義機構 asdf について説明する。 asdf Copyright © 2001-2004 Daniel Barlow and contributors This manual Copyright © 2

    CommonLisp:asdf
  • Scheme Topics

    Lisp系のプログラミング言語の一種。 Gerald Jay SussmanとGuy Lewis Steele Jr.により1975年に創られました。 このWikiシステムもSchemeで書かれています。 Scheme処理系 Gauche Shiroが作っている処理系。多バイト文字をネイティブにサポートする。 MzScheme PLT Schemeプロジェクトの処理系のひとつ。 広く使われており、ライブラリやアプリケーションも充実している。 SigScheme 開発中の小規模な処理系。今後に期待。 処理系間の差異に関しては SchemeCrossReference も参照。 Scheme Topics 下のリストはマクロにより自動生成されています。Scheme:なんとか というページを作れば、自動的にリストに追加されます。 Scheme:!と?Scheme:BookScheme:Brain

    Scheme Topics