lists:keymember
lists:keymemberこれは関数名からは何をするのかよく分からなかったので、ドキュメントを見たのですが、それでもよく分からない・・・
指定したキーを持つタプルが存在するか調べるために使うものかと思います.
1> lists:keymember("mocha", 1, [{"cinnamon", 1}, {"mocha", 2}, {"milk", 3}]).
true
2> lists:keymember("cappuccino", 1, [{"cinnamon", 1}, {"mocha", 2}, {"milk", 3}]).
false
こんな感じでしょうか.
lists:key~ を使えば,Perlなどのハッシュに相当する処理を行える(もちろん処理時間は異なるけれど),ということだと思います.
1> X1 = [].
[]
2> X2 = lists:merge(X1, [{"cinnamon", 1}, {"mocha", 2}]).
[{"cinnamon",1},{"mocha",2}]
3> lists:keysearch("mocha", 1, X2).
{value,{"mocha",2}}
4> X3 = lists:keydelete("mocha", 1, X2).
[{"cinnamon",1}]
5> lists:keysearch("mocha", 1, X3).
false
margeを使ってキーを追加,キーの上書きは keyreplace,取得は keysearch,存在確認は keymember,削除は keydelete,ソートは keysort で出来るようです.
タプルの数に比例して処理時間がかかると思うので,要素数が少ない場合にしか使えないとは思いますが・・・
The comments to this entry are closed.
Comments
ありがとうございます!
非常に参考になりました!!
Posted by: perezvon | Monday, April 30, 2007 11:46 PM