Erlang、単一代入と辞書

This entry was posted by on Thursday, 17 May, 2007

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。

わたしもそう思います。

本題と関係ないけど檜山さんのところは「キマイラ飼育記」だと思ってました。すいません。

Comments are closed.