Since 14.Jan.2009:08:29
プログラミングと絵のブログ
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
まずはHello, Worldから 正直erlコマンドでBEAMっていう対話式のインタプリタに入って io:format("Hello, World.~n"). で終わりなんだけど せっかくなのでコンパイルできるファイルにしてみる -module(hello). -export([hello/0]). hello() -> io:format("Hello, World.~n"). 以上 -module(hello).がモジュール名の宣言 これはファイルをhello.erlにしないとダメ つまりモジュール名とファイル名は統一する 他の言語と違ってイニシャルは小文字 大文字にするのは変数のみ -exportは他の言語で言えばスコープをpublicにするのと同義 []がListで、配列みたいなもん helloが関数名、0が引数の数 Erlangはオーバーロードを使える上に 引数の数が違ったら同じ名前の関数でも 完全に違うものとして扱われるから引数の数の指定が必要らしい hello() ->が関数の記述の開始 io:format()はioモジュールのformat関数を呼ぶ Erlangでは\nの代わりに~nで改行 ~sとか~pとか使って埋め込みもできます そのときは io:format("~p is ~p", ["Erlang", "Good"]). でListを与えて置き換え ちなみに.が関数の終了 複数行に渡るときは最終行だけ.であとは,で区切る オーバーロードの時は.の代わりに;を使う 例えば add({add, X, Y}) -> Z = X + Y, Z; add({mul, X, Y}) -> X * Y. {}で囲んだのはタプルといって、Listとは微妙に違うみたい どこが違うかは知らん add, mulは変数ではない イニシャルが大文字じゃないし これはAtomといって、Rubyとかのシンボルみたいなものかな 文字列みたいにそのまま渡せる 大文字を使いたかったら'Add'って感じに''で囲む 文字列は""しか使えない Erlangの場合、引数の受け取りはパターンマッチで行う [H | T]とするとListを最初の要素とその他で分けて受け取れるし つまり上記の例のようにパターンマッチで分岐させることもできる よってErlangではif文をあまり使わないらしい ガードっていう条件まで付けれるし 同じパターンで違うガードの関数が増えるとcase文を使う
PR
Comment
カレンダー
12 | 2025/01 | 02 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
ブログ内検索
プロフィール
HN:
uguisu_an
年齢:
35
性別:
男性
誕生日:
1989/08/20
自己紹介:
基本的にテキトー
カテゴリー
最新記事
(10/30)
(08/12)
(08/12)
(07/05)
(06/29)
最新コメント
[10/01 くゆる]
[09/21 uguisu_an]
[09/17 mayigo]
[07/17 uguisu_an]
[07/15 shinh]
最新トラックバック
アクセス解析
フリーエリア
P R