0

リストに要素を追加したいのですが、リスト ライブラリやその他の BIF を使用できません。私がどのようになりたいかの例:

Eshell V5.9.1 (abort with ˆ G)
1> Db = db:new().
[]
2> Db1 = db:write(apple, fruit, Db).
[{apple,fruit}]
3> Db2 = db:write(cucumber, vegetable, Db1).
[{apple,fruit},{cucumber,vegetable}]

私がこれのために今持っているコード(動作していません):

write(Key, Element, []) -> [{Key, Element}|[]];
write(Key, Element, [H|T]) -> [H|write(Key,Element,T)].

私が得ているエラーは、これを行うときです:

3> Db2 = db:write(cucumber, vegetable, Db1).
** exception error: no match of right hand side value [{apple,fruit},{cucumber,vegetable}]

エラーメッセージは理解できたのですが、ここからどうすればよいのかわかりません...

4

3 に答える 3

2

これは、すでに値を持っている場合に過ぎず、(エラー メッセージによると)Db2の戻り値とは異なる値であると思われます。入力してその値を確認し、その値を「忘れる」ために入力して、再度割り当てることができるようにします。db:write[{apple,fruit},{cucumber,vegetable}]Db2.f(Db2).

于 2013-01-18T13:55:14.233 に答える
2

次の方法で要素をリストに追加できますList ++ [Element]

于 2013-01-18T14:15:02.480 に答える
1

++ 演算子を追加することはあまりお勧めできません。小さなリストでのみ使用してください。

2 つのオプションがあります。オペレーター。

于 2015-01-19T08:03:48.150 に答える