erlang

とりあえずカウンターを作ってみた

とりあえずある程度覚えたらカウンターを作ってみることにしている。Perl: OOP - 西尾泰和のはてなダイアリー。JS版とかAS版もあった気がするけど見つけられなかった。さてErlangでカウンタを作るとなると、単一代入が足かせになるように思える。 15> Counte…

勉強中2

77> F = fun(X, Y) -> X + Y end. #Fun<erl_eval.12.113037538> 78> F(1, 2). 3 関数はファーストクラスのオブジェクト。 79> X = io. io 80> X:format("hoge~n"). hoge ok モジュールもファーストクラスのオブジェクトのようにみえる。実際にはアトムだが。 81> Y = X:format. * 1:</erl_eval.12.113037538>…

つまずきポイント

うっかりswitchに引きずられてcase X -> ...みたいに書いていたけどそこにcaseは必要ない 最後のcaseのendの直前の行が;で終わっては行けない io:format("~p~n", NewScore)って書いて「exception exit: {badarg,[{io,format,...」というエラー。正解はio:for…

random:uniform(N)の返り値の範囲

Erlangで乱数を使おうと調べていて気がついだのがけど、random:uniform(N)の返り値の範囲は0〜N-1ではなく1〜N。要注意。

とりあえずフィボナッチ

-module(tmp). -export([fib/1]). fib(1) -> 1; fib(2) -> 1; fib(X) -> fib(X - 2) + fib(X - 1). 4> c(tmp). {ok,tmp} 5> tmp:fib(5). 5 6> tmp:fib(6). 8-module(tmp). -export([fib/1]). fib(1) -> [1]; fib(2) -> [1, 1]; fib(X) -> Result = fib(X - 1…

勉強中

16> 16#FF. 255 17> 2#10100. 20 へー、これは便利。 18> 4 / 2. 2.0 ふむふむ。 20> list_to_integer("HOGE"). ** exception error: bad argument in function list_to_integer/1 called as list_to_integer("HOGE") 21> list_to_integer("HOGE", 36). ** e…

同じ変数に2回代入してもエラーにならない例

1> N = 1. 1 2> N = 2. ** exception error: no match of right hand side value 2 3> N = 1. 1 エラーメッセージを見て「値が同じならエラーにはならないよね」って確認してみたらその通りだったので書いた。お、次の章に進んだらちゃんと書いてあった。 「…