Do You PHP はてブロ

Do You PHPはてなからはてブロに移動しました

自習メモ〜分散プログラミング(全ノードへのモジュールロード)

公開されているpdfをやってみるシリーズ(?)の分散プログラミング。
前回に続いて、リモートノードへのモジュールロードを確認。今回は、「全リモートノードへモジュールをロードする」モジュールをpdfに従って確認。

-module(load_module).
-export([load_nodes/1]).

load_nodes(Module) ->
    {_Module, Binary, Filename} = code:get_object_code(Module),
    load_nodes(nodes(), [_Module, Filename, Binary]).
load_nodes([Node|Nodes], MFB) ->
    rpc:call(Node, code, load_binary, MFB),
    load_nodes(Nodes, MFB);
load_nodes([], _) ->
    ok.

モジュールのコード自体は、前のエントリでやった内容、ほぼそのままです。ただ、関数をうまく定義し、再帰的に全ノードに対してモジュールのロードを行う、という動きになってます。
最初、「[Node|Nodes]」にピンとこなかったのですが、「リストの先頭要素」と「それ以降の要素群」ということで、リストから1ノードずつ取り出してload_nodes/2を再帰的に呼び出してるんですね。なるほど〜。