Erlang

素数計算

30分プログラム、その274。Erlangで素数計算。 Project EulerのProblem12を解くために素因数分解がいるので、それの準備。 素数のリストが欲しいけれど、ムダな計算は避けたい。Schemeとかだったら遅延リストやストリームを使うタイミングだけど、Erlangだっ…

三角数の約数(3)

30分プログラム、その273。三角数の約数 via Project Euler、その3。 まだ解けない。同じマシンで動かしているのに別のErlangノードと通信できない。他のマシンだと、同じ方法でできるのになぁ。 できるマシンでしばらく動かしてみたけれど、解ける気配がし…

三角数の約数(2)

30分プログラム、その272。三角数の約数 via Project Euler、その2。 分散計算しようと思ったらErlangのビルドに予想以上に時間がかかっているので、昨日(id:mzp:20080326)のやつに途中キャンセルの機能などを追加してみた。 使い方 1> problem12:start(). 7…

三角数の約数(1)

30分プログラム、その271。三角数の約数 via Project Euler、その2。 ひとつのマシンで無理ならErlangで分散処理してやろうと、Erlangで書き直してみた。 プロセスAでは偶数番目の三角数のチェックを、プロセスBでは奇数番目の三角数のチェックをするという…

プログラミングErlang読みおわった

プログラミングErlang作者: Joe Armstrong,榊原一矢出版社/メーカー: オーム社発売日: 2008/02/23メディア: 単行本(ソフトカバー)購入: 8人 クリック: 284回この商品を含むブログ (97件) を見る読みおわった。英語版も読んだけれど、日本語のほうが読みや…

誤字: rectongle

プログラミングErlangの誤字。P.287のコード compute_area({rectangle,X,Y}) -> X*Y. は compute_area({rectongle,X,Y}) -> X*Y. の間違いです。以下のコードにはわざと間違いをまぜてある、という文脈なのに全然間違いが見つからなくて困った。原書をもって…

ビット構文がすごい

プログラミングErlangより。 Erlangのビット構文がすごい。例えば、16ビットのRGBカラーの場合、 1> <<R:5,G:6,:B:5>> = Color. 2> Color2 = <<R:5,G:6,:B:5>>. でアンパックやパックができる。 シフトやマスクでとり出すよりも断然、見やすいですよね。</r:5,g:6,:b:5></r:5,g:6,:b:5>

200万までの素数の和

30分プログラム、その269。200万までの素数の和 via Project Euler。 最近、勉強しているErlangでチャレンジ。でも並列計算ではない。 またも失敗。素数は鬼門だ。 エラトステネスのふるい -> 終了しない。そうかエラトステネスはO(N^2)か フェルマーテスト…

プログラミング言語Erlang入門

プログラミング言語Erlang入門作者: 柏原正三出版社/メーカー: アスキー発売日: 2007/11/29メディア: 単行本(ソフトカバー)購入: 3人 クリック: 72回この商品を含むブログ (40件) を見る読んだ。今ひとつ。Erlang特有の話はほとんど書いてない。かろうじて…

マルチスレッドで素数の計算

30分プログラム、その159。ひろ氏がお昼ご飯のときに、「マルチスレッドで素数の計算がしたい」というようなことを言っていたので、Erlangでやってみる。方法はフェルマーテスト(id:mzp:20071001:fermat)。あるスレッドが、ほかのスレッドの計算結果に影響を…

分散関数呼び出し(失敗?)

30分プログラム、その123。分散システムの勉強をしたのでさっそく試す。でも、なんかうまくいってない。大学で動いたプログラムさえ動かない。あとで、インストールしなおそう。 使い方 サーバ側 $ erl -sname foo (foo@localhost) 1> rpc_demo:start(). tru…

クイックソート

30分プログラム、その121。Erlangで並行に計算するクイックソート。ピポットの右と左を別のプロセスで計算してから、あとから結合するようにしてみた。 でも、普通のクイックソートに負けている気がする。 使い方 > qsort:qsort([]). [] > qsort:qsort([3,2,…

マージソート

30分プログラム、その119。Erlangでマージソート。 使い方 > msort:msort([13,3,2]). [2,3,13] ソースコード シーケンシャルなのでErlangである意味はあまりない気がしてる。 -module(msort). -compile(export_all). merge(A,[]) -> A; merge([],B) -> B; me…

Erlangでいろいろ

30分プログラム、その118。Erlangの勉強を始めたので、車輪の再発明をいくつか。 絶対にlistsモジュールにもうあるんだろうなぁ。 ソースコード -module(newbies). -compile(export_all). last([X])-> X; last([_|T]) -> last(T). foldr(_,Init,[]) -> Init;…