「Elixir 擬人化」で検索したけど、特にないらしい。
言語の擬人化ブームが過ぎた後に出てきた言語?だからかな・・・
-
- -
関数について。
有名関数(名前付き関数)と無名関数があるらしい。
名前付き関数は普通だけど、C++経験者としてはクラス的な?モジュールを定義して、その中でないと名前付き関数は使えないとか。
defmodule Foo do def inc(n) do n+1 end end
これはFooモジュールに関数inc()を定義してる。モジュール名は大文字スタート、関数名は小文字スタートという規約らしい。引数は、動的型付けなので型名は不要。このファイルをファイルとして保存して実行。
iex(46)> c "foo.exs" [Foo] iex(47)> Foo.inc(10) 11
できました。
次に無名関数。fn(引数)で定義、関数型では良くあるらしいが、何か変数に関数を代入して使うらしい。シェルから打つと、こんな感じ。ドットの後に括弧というのが慣れないですね・・・
iex(51)> bar = fn(n) -> ...(51)> n-1 ...(51)> end #Function<6.127694169/1 in :erl_eval.expr/5> iex(52)> bar(10) ** (CompileError) iex:52: undefined function bar/1 iex(52)> bar.(10) 9
次回に続く