てきとうなメモ

本の感想とか技術メモとか

2007-05-05から1日間の記事一覧

文字コードを指定して開く

文字コードを指定して開く C-x RET c 文字コードを入力 RET C-x C-f 開きなおす C-x RET c 文字コードを入力 RET C-x C-v RETだそうです。 emacsで文字コードを指定して開く - PC日記 自動判別を失敗したときに使える.

The Way of Testivus

The Way of Testivus If you write code, write tests. Don’t get stuck on unit testing dogma. Embrace unit testing karma. Think of code and test as one. The test is more important than the unit. The best time to test is when the code is fresh…

ガード

ガードが真であるときにbodyが実行される.when ...で指定する.例えば,絶対値を求めるabs/1は以下のように定義できる. abs(N) when N >= 0 -> N; abs(N) -> -N.

if

ガードで指定しなくてもifで条件分岐できる abs(N) -> if N >= 0 -> N; true -> -N end. 構文は if Condition1 -> Expr1; ... ConditionN -> ExprN end

Case

パターンマッチの条件分岐もCaseを使って右辺に書くことができる.構文は case Expr of Pattern1 -> Expr1; ... PatternN -> ExprN end これでqsortを書き換えると, qsort(List) -> case List of [] -> []; [Pivot|Rest] -> qsort([X || X <- Rest, X =< Pi…

funと高階関数

funを使うと無名関数を作ることができる. 4> F = fun(X) -> X+1 end. #Fun<erl_eval.6.72228031> 5> F(1). 2 6> F(2). 3これを使って高階関数を書くことができる.例えばqsortに比較関数を指定できる. qsort([], _) -> []; qsort([Pivot|Rest], Func) -> qsort([X || X <- Rest,</erl_eval.6.72228031>…