最新

val it : α → α = fun

<<  2007/05  >>

2007/05/17 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。

わたしもそう思います。

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