プロセスを作るとき

コレとコレの違いがわからない.

spawn(anymod, anyfunc, [X, Y]).
spawn(fun() -> anymod:anyfunc(X, Y) end).

プログラミングErlangではほとんど後者で書かれている(全部読んでいないけど).

たしか前者が途中でモジュール入れ替えてもちゃんと対応するだった気がする. なのに後者を使う理由ってなんなんだろう.

書いてみて

こんな関数を書いてみた.

-module(proc).

sum(X, Y) ->
    X + Y.

コレを前者のやり方で呼ぶ.

spawn(proc, sum, [1, 2]).

プロセスIDが出るだけで意味ない. 後者.

spawn(fun() ->
          Pid ! proc:sum(1, 2)
      end).

Pidは受け取ったメッセージをそのまんま表示するプロセス. なんとなくわかった気がする. お手軽楽チンだね!