Erlang勉強会#1に参加しました
関西にしては濃い目の勉強会のようでした。堪能しました。以下、個人的なメモです。
- erlシェルは、Windowsの人はGUIの方を使うべき。履歴が使える。
- エラーメッセージはよくわからない。エラーのでたことしか読み取れない。
- lists:mapにいちいち無名関数で渡さないといけないの? → fun foo/1みたいな省略記法があるみたい。
- io:formatの~pはとりあえず覚えておくといいみたい。Rubyのpぽい。
- erlシェルでio:[Tab]で補完できる。使える関数が表示される。ここでマニュアルが引ければベストなんだけど。
- EmacsのErlangモードを使ってると「;」と「,」と「.」が好きになってくる。これはこれでありかもという気がする。
- ifとかcaseとかで最後のendの前には;はいらない。みんなはまってた。テキストが悪い?
- HIGHER ORDER PERL。Perlを関数型ぽく使う話。Rubyでも遅延評価とか無限リストとかカリー化とか使いたいときがたまにあるから、興味津々。早々に購入すること。
- PerlとHaskellは対極に位置する。「Perlにはけがれしかない」らしい。Prologは次元が違う。直交してる。
- SOAP、AJAX、COMETは洗剤の名前が由来らしい。日本からも洗剤の名前を。きれいきれいか?
- ローマ数字を整数に変換する。エラーチェックに正規表現を使ってこんなのになりました。正規表現を使ってるので関数型言語的にいまいち。yuyaさんが言ってた、文字列の2文字目までパターンマッチしてI、V…の順番をチェックして、IとかVとかの連続は引数に持ち回ってカウントするのがよさそう。んー、手でパーサを書くようなイメージ。Haskellだったら僕はPersec使うかな。やっぱり。
ファイル: roman.erl
-module(roman). -export([old_roman_to_integer/1, main/1]). old_roman_to_integer_([]) -> 0; old_roman_to_integer_([$I | Xs]) -> 1 + old_roman_to_integer_(Xs); old_roman_to_integer_([$V | Xs]) -> 5 + old_roman_to_integer_(Xs); old_roman_to_integer_([$X | Xs]) -> 10 + old_roman_to_integer_(Xs); old_roman_to_integer_([$L | Xs]) -> 50 + old_roman_to_integer_(Xs); old_roman_to_integer_([$C | Xs]) -> 100 + old_roman_to_integer_(Xs); old_roman_to_integer_([$D | Xs]) -> 500 + old_roman_to_integer_(Xs); old_roman_to_integer_([$M | Xs]) -> 1000 + old_roman_to_integer_(Xs). old_roman_regexp() -> "^M?M?M?M?D?D?D?D?C?C?C?C?L?L?L?L?X?X?X?X?V?V?V?V?I?I?I?I?$". old_roman_to_integer("") -> throw("empty string."); old_roman_to_integer(S) -> case regexp:match(S, old_roman_regexp()) of {match, _, _} -> old_roman_to_integer_(S); nomatch -> throw("invalid input."); {error, _} -> throw("internal error.") end. main(Args) -> lists:foreach(fun(A) -> io:format("~.10B~n", [old_roman_to_integer(A)]) end, Args).
二次会は(歌わない)カラオケ。
- エディタの話。(Emacs、Vim、最近はブラウザ上でViが動くらしい)
- xyzzyは読み方がよくわからない。「亀さんエディタ」が個人的にヒット。TortoiseCVSも「亀さん」らしい。こちらも採用。
- シェルで&&。makeしたけどmake installを付け忘れたとき、どうするか? pwaitで待つ? Ctrl-Cする?
Higher-Order Perl: Transforming Programs with Programs
- 作者: Mark Jason Dominus
- 出版社/メーカー: Morgan Kaufmann
- 発売日: 2005/03/14
- メディア: ペーパーバック
- クリック: 21回
- この商品を含むブログ (30件) を見る