2008-03-01から1ヶ月間の記事一覧

Erlangで無限ストリーム

SICPを図書館で眺めていたら無限ストリームなんてものが. 関数(fun)で式を包んで, 必要なときに外の関数を評価すればよいみたい. Erlangのマクロでdelayってどうやって書くのかな? パターンマッチの前にはcar,cdrがいらない子に.. Rubyとscalaでの実装がパク…

Euler Project - 4, 5, 8 -

Euler 4 3桁の2数の積で上から読んでも下から読んでも同じ数を求める.回文の判断は(equal? n (reverse n)), あとは2重ループを再帰で書き直しただけ. (define (palindrome? string) ((lambda (l) (equal? l (reverse l))) (string->list string))) (define (…

Euler 3

素数の無限ストリームで素因数分解. (define (stream-car s) (car s)) (define (stream-cdr s) (force (cdr s))) (define (stream-ref s n) (if (= n 0) (stream-car s) (stream-ref (stream-cdr s) (- n 1)))) (define (stream-filter pred s) (cond ((null…

Euler Project 6でschemeに浮気

帰省中はErlangを触れないのでScheme (Gauche)で解いてみる.1-100までの二乗和と和の二乗との差を求める. 再びAccumulatorに働いてもらう. (define (acc c v l) (if (null? l) v (c (car l) (acc c v (cdr l))))) (define (sum-of-sq l) (acc (lambda (x y) …

ErlangでEuler Project

Euler Projectという数学やらプログラミングの問題サイトがあったので, Erlangの練習も兼ねて始めてみる. 1. 1000未満の自然数で, 3か5の倍数の数字を全て足した数を答える. ちょうどよいのでAccumulatorを使ってみた. -module(euler1). -export([acc/3, ran…

FLV (Flash Video) のフォーマットを眺める

ニコニコ動画のFLVからMP3を取り出したくて調べてた. 巷にはそんなソフトがたくさん転がっているのだけれど, Linuxでもできる! というのは少なそうだし.OpenFlash の FLV Format を眺めてみた.簡単には, まずFLVファイルであることを示す[FLV Header:9byte]…

Erlangを触ってみた

並列指向関数型言語 Erlang ("あーらん" と読むらしい) でJoel Spolskyの試してみよう を解いてみた.Erlangらしさ (並列処理) を生かせるようになりたいのう. % Accumulator problem -module(acc). -export([accumulator/3, sum_of_square/1]). accumulator(…

Vine Linux + fluxboxで自動マウント

ivman と pmount を使う. pmountは, apt-cache search pmount でパッケージを探してインストール.ivmanは, http://d.hatena.ne.jp/hanahi/20061202/p3 を参考に, tar-ball を落として, ./configure; make; make check; make install;.fluxbox/startup の flu…

Linuxで印刷のキャンセル

Gimpから画像を印刷しようすると, JPEG画像(500kB)が文字列で印刷されてきて大変困った. 急いでプリンターから印刷用紙を外してキャンセルの方法を探すと, The Linux HOWTOにそのもの +α が見つかったのでメモ.linuxでの印刷はもともと, 印刷デバイス /dev/l…

fluxbox 事始め

うちのパソコン(Celeron700MHz,Memory 256MB)にGNOMEは荷が重いようなので, 軽い上にカッコイイfluxboxへ替えてみた.ちなみにCPUとメモリの情報はそれぞれ, $ cat /proc/cpuinfo $ vmstatで調べた.行ったのは, CapsをCtrlキーにする. pmount, roxのインスト…