Search a list of records: Difference between revisions

no edit summary
(Scala solution added)
No edit summary
Line 1,579:
Khartoum-Omdurman
4.58</pre>
 
=={{header|Maple}}==
<lang Maple>rec := [table(["name"="Lagos","population"=21.0]),
table(["name"="Cairo","population"=15.2]),
table(["name"="Kinshasa-Brazzaville","population"=11.3]),
table(["name"="Greater Johannesburg","population"=7.55]),
table(["name"="Mogadishu","population"=5.85]),
table(["name"="Khartoum-Omdurman","population"=4.98]),
table(["name"="Dar Es Salaam","population"=4.7 ]),
table(["name"="Alexandria","population"=4.58]),
table(["name"="Abidjan","population"=4.4]),
table(["name"="Casablanca","population"=3.98])]:
 
searchRec := proc(rec, pred, operation)
local i:
for i to numelems(rec) do
if pred(rec[i]) then
return operation(rec[i],i):
fi:
od:
end proc:
searchRec(rec, x->x["name"] = "Dar Es Salaam", (x,i)->print(i-1)): # minus 1 since Maple is 1-indexed
searchRec(rec, x->x["population"]<5, (x,i)->print(x["name"])):
searchRec(rec, x->x["name"][1] = "A", (x,i)->print(x["population"])):</lang>
{{out}}
<pre> 6
"Khartoum-Omdurman"
4.58
</pre>
 
=={{header|Mathematica}}==
Anonymous user