http://d.hatena.ne.jp/m-hiyama/20070517/1179360670ありうる不満ですが、たぶん次のようにして解決できるんじゃないかと思います。
まず、実は Erlang のどんなプロセスも辞書を最初っから1つずつ持たされて生まれてきます。そして、その辞書へは put と get という2つの組み込み関数によって操作ができます(cf. http://www.erlang.org/doc/doc-5.5.4/doc/reference_manual/processes.html#10.9)。
ですから、
sample() ->
D0 = dict:new(),
D1 = dict:store("板東トン吉", [27, male], D0),
D2 = dict:store("大垣ペケ子", [21, female], D1),
Val = dict:find("板東トン吉", D2),
Val.
これは、
sample() ->
put("板東トン吉", [27, male]), % 項目を格納
put("大垣ペケ子", [21, female]), % さらに項目を格納
Val = get("板東トン吉"), % キーに対する値を検索し
Val. % それを返す
このようにして書けるのでした。いーでしょ。……だめ?
「そんなこといったってプロセスに2つの辞書が欲しくなったらどーすんだYO!」ってお思いのあなた。あなたはすでに既存言語の呪縛に囚われている。そういうときはプロセスを分ければいーじゃないですか。
まあ、いびつな解決策だと思いますけどね(笑)。
洗練されてパーフェクトなものより、少し奇妙で不格好なほうが魅力的だってことがあるでしょ。そういう魅力があるね、Erlang。
わたしもそう思います。
本題と関係ないけど檜山さんのところは「キマイラ飼育日記」だと思ってました。すいません。