Erlang
多分どこかにはまとめがあるんだろうけど、Keplerにしたついでに今更導入してみたメモ。 というかここのところ現実逃避が酷い。 eclipse.iniがEclipse.appのパッケージの中で面倒い erlangのインストールパスが微妙で面倒い /etc/hosts書き直さなきゃいけな…
前述の not spawn(m,f,a). は、こっちでも not spawn(m,f,a). だった。*1 日本語の方も読み終わってないし、暇になったら読みます。 *1:『「以下は誤りです。」部分が「not」のみ』なのはそうだったけど。
とりあえず、P.93、罠のマークのパラグラフの最後、 not spawn(m,f,a). は、 spawn(m,f,a). だと思う*1のですが、今一つ確信がないし、いずれにせよ誤りだからどうでもいいか。 という訳でまだ100ページ読んでません。 遅々として進まなくて読み終わる気がし…
今更綺麗にひっかかったけど、Erlangは演算子の優先順位が他と違う。 例えばPython、 >>> 1 << 2 & 4 4あるいはRuby、 irb(main):001:0> 1<<2 & 4 => 4またはC、 % cat op.c #include <stdio.h> int main(){ printf("%d\n",1<<2&4); } % gcc op.c % ./a.out 4これらの</stdio.h>…
またリリースに気がついてなかった… 毎度ながら面倒なのでMacPorts待ち。
日記書くネタもないし、なんか面白そうだったので、http:request/4の練習をかねて。 最初のうちは元ソースを読んでましたが、最終的にPython版の丸写し。*1 色々*2酷い事になっていますが、気にしてはいけません。 使い方: 1> c(googl). {ok,googl} 2> inet…
いいかげんに同じことを公式で検索かけるのも嫌なので。結局日記を検索することになる気もするけど e.g.: -module(pm_ex, [X,Y]). -compile(export_all). foo(Bar)-> Bar*Y+X. 使い方は、 1> c("pm_ex.erl"). 2> M=pm_ex:new(2,3). {pm_ex,2,3} 3> M:foo(4).…
と思ったら、なんの事はない、今までだったら"R13B-1"だったのが、"R13B01"になってるからだった。 これ、メンテリリースが10越えたら、例えば"R13B13"になるのかな? やっぱりハイフンあった方がいいんじゃないだろうか…。
公式のトップに載ってるオライリーの本*1、日本語訳が出版される望みはあるんだろうか? 出るなら待つし、出ないなら今すぐ英語版を買うんだけど。 (言語が違うとはいえ)同じ本を2冊持つのは嫌だし…。 とりあえず図書館にリクエスト出してみよう。 *1:しか…
まぁ1月半放置してれば… とりあえず、MacPortsでアップデート中。 以下、新機能に対する徒然。
そのままupdateしようとするとX11関係を入れようとする*1ので、 sudo port -vun update erlangでほっておいてみたが問題なくビルドできた。*2 wxErlangのサンプルも動く…というかwxErlangはsvnで取ってきた方が使われちゃってるっぽいな…。 まぁとりあえず動…
が、現在ものすごく眠い上に明日は朝から遠出で、明後日かその次の日*1 *2まで帰ってこない。*3 インストールは後回しにするしかないか。 既にno_x11なSDLとwxWidgetsが入っているので、そんなに苦労しないだろうと楽観してる。というかそうであってほしい。…
R13B来てないか確認ついでに古いportをアップデート。 そのコンパイル待ちの暇つぶしにbogosort書いてみた。
いつの間にか出てるし。 まぁ結局port待ちなんだけど。
Rulesセクションの左側に正規表現の間違いがあると、エラーが表示されるんじゃなくてleex:build_nfa/4で例外が投げられるんで、問題個所がよくわからなくなる。 大量のルールを追加していると特定が面倒。
SMPの強化。 Unicode。EEP10によると、ライブラリ、ioのフォーマット、bitstringの文法と変更は多岐に渡るようで。 wxErlang。現状Tkで実装してるgsをこれで再実装するつもりらしい。…svn coしたんだけど意味無いなぁ。 RelTools。使った事ないんで知らない…
妄想を一部変更した。 '{' と '}' '{'が処理される時点でポインタが指しているセルの値をスレッドIDとして、対応する'}'までを新しいスレッドで処理。 これはpbrainの影響。*1 ただ、標準入出力(=0)や親(=1)や定義済みの子供が行方不明になり得る諸刃の剣。 …
http://apps.sourceforge.net/mediawiki/wxerlang/index.php?title=Main_Page
後日引っ掛かった時のためのメモ。 面倒なのでPortfileを修正。 が、セミコロン追加しても何も変わらないし、原因を考えるのも面倒なのでxargsに丸投げ。 r87_0時点ではこんなのでOKだった。 37c37 < system "find ${worksrcpath} -name .svn -type d -exec …
http://erlang-users.jp/ な、なんだってー そんなものがあったのか…Erlang Worldしか知らなかった…
買ってあったのに積んであった『Rubyで作る奇妙なプログラミング言語』を読み始めました。 …で、どうせRubyはよく解ってないので、esotericな言語の解説を読んで、Rubyのソースを参考にErlangで適当に実装していく事にしました。 最初に載っているBrainf*ck…
それっぽい文体にしたら非常に読みにくい自体になってしまったので別に書いときます。 仕様 作者はGrassを理解していません! Erlang自体がASCII以外の文字コードを扱えないため、全角文字には対応できません。*1 parse_prog/1が間違っている*2ため、一部の…
Grassインタプリタできたよーwww 無駄に長いのでソースは最後wwwww とりあえず出来が酷いwwww動くか怪しいしwwwwwwwww 完成したのに今一つGrassの動作が解ってないwwwwww意味ねえwwwwwwww しかもwwwwwErlangぽさがwwwwwwほとんどねえwwwwwwww仕様wWWwwww: …
http://d.hatena.ne.jp/m-hiyama/20080912/1221207073 へー、EDocって日本語使えないのかー。 ってErlang自体がASCII以外使えないんだっけか。
これはもう一回実装してみるべきだろう、とか。 見た目(だけ)似てるPrologがあったので、Erlangなら案外書けるんじゃないかなー、とか。 思いつきにしても、なんという愚挙…。 でもまぁ、実装しようとすればおのずと動作も解るでしょ。
全開^h^h前回からの続き。 また普通にFizzBuzzしても面白くないので、イテレータぽい事をやってみる。 fb/1*1は前回と一緒…じゃないけど同値。(前回のが駄目すぎたとも言う) start/0で開始。 fizzbuzz/1はその時点でのFizzBuzzの結果を返す。呼び出す度に…
FizzBuzz辺りから始めるべきなんじゃないだろうか? と思い立ったので今更FizzBuzzを作ってみる。 -module(fizzbuzz). %-compile(export_all).%for debug -export([fizzbuzz/0,fizzbuzz/1]). fizzbuzz()-> fizzbuzz(100). fizzbuzz(N) when is_integer(N)-> …
bitstringのサイズが欲しかったけど何を使えばいいか分からなかったので、Google先生に聞いてみた。 いくつかのソースを見ると、どうやらerlang:bitsize/1を使えばいいらしい。よし、これでいける。 1> erlang:bitsize(<<10:5,20:6>>). ** exception error: …
要はメモ。 入力はio:fread。注意点として、プロンプトはatomでも良いけど、フォーマットは文字列じゃなきゃダメ。 出力はもうio:formatでいいや。まぁ、ioのマニュアルを見る限り、fwriteも同じモノのようだ。 え?stderr?How do I...によると、ポートと通…
ErlangによるBrainf*ckインタプリタは既にあるので、 「yeccを使って構文木っぽいものを作った後にそれを1関数で解釈・実行」 という自分で言ってて訳の分からないテーマに挑戦してみた。 開始前の問題は、 Erlang?何それ? yecc?yacc?何それ? 関数型言…