scheme

11章「ソート」 - 珠玉のプログラミング(Programming Pearls)

珠玉のプログラミングの11章。 11.5.1 n 回見ればよい物ばかりなのでソートしなくても良さそう。 11.5.2 コード参照。 11.5.3 データ数で計測して交わるところを考える。 11.5.4 すべて同じ値の配列の場合。 11.5.5 問題の意味が分からないので略。 11.5.6 …

10章「メモリの節約」 - 珠玉のプログラミング(Programming Pearls)

珠玉のプログラミングの10章。 10.6.1 インタプリタのコードとか。 10.6.2 bitmap はどうだろう。用途によるか。 10.6.3 HDD 80GB Mem 1GB 空き 180MB 10.6.4 略 10.6.5 関数の補正に1要素=数ビットの表を利用した。 10.6.6 よく分からなかった。 10.6.7 has…

9章「コードチューニング」 - 珠玉のプログラミング(Programming Pearls)

珠玉のプログラミングの9章。 9.5.1 Mosh でやったことがあるので略。 9.5.2 配布プログラムがうまく動かないので略。 9.5.3 do while なら良さそう。という話だろうか。 9.5.4 配列が小さい順にソートされていると、arrmax が 2倍呼ばれてしまう。 9.5.5 本…

Shibuya.lisp テクニカルトーク#4

Shibuya.lisp テクニカルトーク#4の告知が出ています。 今回のテクニカルトークも大変豪華。今から楽しみ。

8章「アルゴリズムのデザインテクニック」 - 珠玉のプログラミング(Programming Pearls)

珠玉のプログラミングの8章。 8.7.1 maxendinghere の不変表明は「任意の 0 .. i-1 に関して maxendinghere がx[i - 1] を含む部分配列の総和の max 」であること。 0 のときは 0 なので成り立つ。 k - 1 まで成り立っているのであれば、maxendinghere は x[…

shiro 流

map-accum と match-lambda* の組み合わせとか人生で一度も経験ない。 jmp label のために addr という seed を持ち回って評価していくのがきれいだ。 こういう職人芸は盗まねば。 ;; asm :: [Insn] -> [Byte] (define (asm insns) ;; first pass. create [(…

SRFI-103, 104

提案者は R6RS 用の SRFI を開発している人ですね。 103: Library Files http://srfi.schemers.org/srfi-103/ 104: Library Files Utilitie http://srfi.schemers.org/srfi-104/

7章「封筒の裏で・・・」 - 珠玉のプログラミング(Programming Pearls)

珠玉のプログラミングの7章。 7.6.1 分からない。 7.6.2 10Mbps と10GB のメモリスティックを10km/h で運ぶ。 ネットワークで 10GB 転送するには 800 秒かかる。 800 秒あれば約 2.5km 進める。1-2km ならメモリスティックを自転車で届けた方が良い。 でもよ…

SRFI-102 Procedure Arity Inspection

手続きのアリティ(引数の個数)をプログラムから取得する手続きの提案です。SRFI-101 とおなじ提案者ですね。 SRFI 102: Procedure Arity Inspection

6章「パフォーマンスに関する考察」- 珠玉のプログラミング(Programming Pearls)

珠玉のプログラミングの6章。 6.4.1 天体数 m とすると m^2 = n^2 * 1000 だから m = n * sqrt(1000) m = 31 n 。 n = 10000 なので 310000 を扱える。 6.4.2 文字列内での大きな部分文字列の探索。 アルゴリズムの変更や、アセンブリでの書き換えとか。 6.4…

Scheme: SRFI-101 Draft が公開されています

SRFI 101: Purely Functional Random-Access Pairs and Lists list-ref とか list-set のアクセスが普通の pair だと O(n) になるんだけど O(1) に近いとうれしいよね。 だからそういう list というか pair? を R6RS 互換で実装しようぜという話。(だと思う…

5章「あと少しの事」- 珠玉のプログラミング(Programming Pearls)

珠玉のプログラミングの5章。 5.8.1 コードは古いが擬似コードは勉強になる。 5.8.2 コード参照 5.8.3 ( 5.8.4 コード参照。 sorted? を定義し assert を入れた。 5.8.5 ソートし忘れているのだから、部分的にソートされている可能性は少ないことを利用して…

4章「正しいプログラムを書く」- 珠玉のプログラミング(Programming Pearls)

珠玉のプログラミングの4章。 偶然にも OOSC でも表明の部分を読んでいたので補足できて良かった。 4.6.1 0 による割り算 割り算は中間値を求めるところでのみ使われる。必ず定数 2 で割るので起きない。 配列の添え字範囲を超える 有効な配列の添え字は 0 .…

JIT コンパイルまとめ

Mosh のパフォーマンスを向上させたいので JIT コンパイル周りを調べてみました。誤りや不足がありましたらご指摘いただけると助かります。 何か? Just in time コンパイルの略。実行時に必要になった時点で動的にコードを生成する仕組み。 VM 型のインタプ…

Shibuya.lisp テクニカルトーク #4 の発表者募集中です

Shibuya.lisp » Blog Archive » Shibuya.lisp テクニカルトーク#4 発表者募集!

3章「データで決まるプログラムの構造」- 珠玉のプログラミング(Programming Pearls)

珠玉のプログラミングの3章。 日付周りのコードを書いたことがなかったので勉強になった。 3.7.1 税率と境界値を配列に格納すればコンパクトに。 3.7.2 問題が曖昧な気がする。コード参照。 3.7.3 コード参照。 3.7.4 アルゴリズムは以下のサイトを参考にし…

call/cc 高速化(地味版)

初回起動時に出来るだけスタックが深くならないようにべた書き(ひどい) ユーザーの各コードを、dynamic-wind, prameterize などで出来るだけ囲まない(ひどい) (eq? winders new-winders) を一息で実行 「restore 時にコピーでなく、そのままスタックとし…

call/cc を高速に

call/cc が遅いので調整中。まずは単純に不要な heap allocation を無くしたり遅延させたり。 調べる仮定でバグを見つけてしまったので修正中。

Mosh 0.2.0 をリリースしました

Mosh 0.2.0 をリリースしました。 ソースコードダウンロード。 Windows 用インストーラ。 追加・変更点は以下の通りです。 並列ライブラリ (mosh concurrent) を追加 Erlang (もしくは termite)のような Shared nothing/メッセージパッシングベースの並列…

2章「ああ(そうか)!」アルゴリズム - 珠玉のプログラミング(Programming Pearls)

珠玉のプログラミングの2章。 2.6.1 順列を列挙して、辞書をリニアサーチ。 時間とメモリがあるなら辞書をあらかじめソートしておく。 2.6.2 ファイルをソートしてそのあと走査。 2.6.3 コード参照。 2.6.4 略。 2.6.5 abc -> bac ->bca -> cba かな? 2.6.6…

1章 真珠貝を開いて - 珠玉のプログラミング(Programming Pearls)

珠玉のプログラミングの1章。 1.6.1 全てを配列(Scheme の場合はリスト)に読み込み list-sort する。 1.6.2 コード bits の実装参照。 1.6.3 メモリ上に全て読み込んでからソートしたほうが圧倒的に速かった。 これは Mosh 特有の false pointer 問題で bi…

Shibuya.lisp Tech Talk #3

始まった。

Shibuya.lisp TT #3 観覧募集開始

Shibuya.lisp » Blog Archive » Shibuya.lisp テクニカルトーク #3 観覧者募集開始!

Shibuya.lisp #3

Shibuya.lisp » Blog Archive » Shibuya.lisp テクニカルトーク#3 の告知が出ています。 前回に引き続き、聞きたい話・お話ししてみたい人ばかりです。楽しみだ。 今回は子供が生まれたばかりで運営のお手伝いは少ししか出来ていないのですが、会場には何と…

chaton 書き込めない

chaton 部屋に書き込めず報告できないのでこちらで。 Firefox 3.0.10 で以下のエラーがコンソールに出ています。 chaton 部屋にアクセスしたのはおそらく初めてです。 セキュリティエラー: http://www.practical-scheme.net/chaton/chaton/ のコンテンツが h…

継続

Scheme 後ろでの爆発音に続く処理を表すものが継続です。 やるなあ。

Mosh 0.1.0 をリリースしました

Mosh 0.1.0 をリリースしました。これは大きな一区切りとなる安定版のリリースです。 Mosh は R6RS 完全準拠となりました。*1 ソースコードダウンロード。 Windows 用インストーラ。 追加・変更点は以下の通りです。 新しいリファレンスマニュアルを追加 Soc…

Socket実装中

>(display (make-client-socket "www.google.com" "http" (os-constant 'AF_INET) (os-constant 'SOCK_STREAM) 0 0)) <socket jp-in-f147.google.com:www></socket>

次回 Shibuya.lisp Tech Talk #3 の 講演者を募集中

次回 Shibuya.lisp Tech Talk #3 の 講演者を募集中です。 TT/LT ともに募集していますので興味のある方はリンク先をご参照下さい。熱いお話、冷めたお話、ネタなど何でも歓迎です。 Shibuya.lisp » Blog Archive » Shibuya.lisp テクニカルトーク#3 発表者…

Shibuya.lisp Tech Talk #2 の動画公開

佐野さん、yazu さん撮影の動画が、id:koguro さんの手により YouTube とニコニコ動画にアップロードされました。 当日 ustream を見逃した方はぜひこちらからご覧下さい。 なお ustream 時には音声が聞き取りづらかった点も改善されています。 マイリスト S…