Erlang、単一代入と辞書
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。
わたしもそう思います。
本題と関係ないけど檜山さんのところは「キマイラ飼育日記」だと思ってました。すいません。
