2009-01-01から1年間の記事一覧

Gaucheで素数の二進法表記

二進数表記に変換してみる - みずぴー日記 経由 素数の二進法表記 - 西尾泰和のはてなダイアリー format "~8@a" で右詰めにして、trで"01"を":#"に変換する。 trの呼び出しを1回にしているのがミソ。 (use srfi-1) (use srfi-42) (use text.tr) (define (pri…

XPCOMでUTF-8文字列から入力ストリームを作る

最近、XULの勉強をしている。 Gaucheの豊富なポート操作に慣れているおかげで、XPCOMのストリームの理解がそれほど苦にならない。 GaucheはポートにバイナリIOとキャラクタIOを混ぜて使えたり、ファイルを重複して開いてもポートへの操作を共有してくれたり…

部分継続でDelegateMapをGaucheで

部分継続でDelegateMap - ヒビルテ (2009-03-16)が素敵なので、Gaucheで書いてみる。 Gaucheの部分継続の実装はKahuaから拝借 http://www.kahua.org/cgi-bin/viewvc.cgi/Kahua/trunk/src/kahua/partcont.scm?view=markup ;; (reset/pc expr) == (reset expr)…

SchemeのOpenGLで流体力学なデモを書いてみた

Ypsilonを試すため、C言語とOpenGLで書かれたコードをSchemeに移植してみた。 Ypsilon用 http://garakuta-okiba.googlecode.com/svn/trunk/fluid/ysmoke.scm Gauche用 http://garakuta-okiba.googlecode.com/svn/trunk/fluid/gsmoke.scm 双方とも 1〜2 fpsだ…

多面体描画道楽 SketchUpで正12面体を作ってみた

先日のShibuya.lisp TT#2で和田先生がLispとPostScriptで正12面体を描くお話をして下さり、面白かった。 そこで、3DモデリングツールのGoogle SketchUpで、スケッチを描くように簡単に正12面体を作ってみた。作図法は和田先生のこの記事によった。http://par…

Shibuya.lisp TT#2 でライトニングトークしてきた

「この木 なんの木 木になるS式 〜FUSEでS式ファイルシステム〜」 FUSEでファイルシステムへの操作を捕まえて、mkdirとtouchコマンドでLispプログラミング!というネタ。 発表時間を最大に使うため、動画で発表した。実演だとトチるもんね。 ニコニコ動画 htt…

サーバーサイドJavaScript(Rhino)の継続でCoroutineを書いてみた

Scheme 入門 16. 継続の例。 2つのタスクを交互に呼ぶ。 数字をプリントするタスク 文字をプリントするタスク var queue = []; function coroutine(thunk) { queue.unshift(thunk); } function start() { (queue.pop())(); } function pause() { var cc = ne…

サーバーサイドJavaScript(Rhino)の継続でambを書いてみた

"amb は 天使のオペレータです。" 独習 Scheme 三週間 参考 RhinoWithContinuations Scheme 入門 18. 非決定性 SICP 4.3 Nondeterministic Computing ambで、三平方の定理を満たす整数の組を探す。 var fail = []; function amb(l) { if (l.length == 0) ret…