View Problem

Remove an entry from a map

Given a map pets {joe:cat,mary:turtle,bill:canary} remove the mapping for "bill" and print "canary"
DiskEdit
python
print pets.pop('bill')
ExpandDiskEdit
cpp C++/CLI .NET 2.0
if (pets->ContainsKey("bill"))
{
String^ value = safe_cast<String^>(pets["bill"]); pets->Remove("bill");
Console::WriteLine("{0}", value);
}
ExpandDiskEdit
erlang
Pet = dict:fetch(bill, Pets0), Pets1 = dict:erase(bill, Pets0), io:format("~w~n", [Pet]),
ExpandDiskEdit
erlang
Pet = ets:lookup_element(Pets, bill, 2), ets:delete(Pets, bill), io:format("~w~n", [Pet]),
ExpandDiskEdit
erlang
{value, Pet} = gb_trees:lookup(bill, Pets0), Pets1 = gb_trees:delete(bill, Pets0), io:format("~w~n", [Pet]),

Submit a new solution for python, cpp, or erlang
There are 19 other solutions in additional languages (clojure, fantom, fsharp, go ...)