26-07-2012, 11:17 PM
Hum bon comme d'hab ici je fais du erlang sur des problèmes posés par des langages ipératifs .. donc c'est moche.
Code :
-module(xy).
-export([tableXY/0,test/0]).
-record(square, {x, y , user}).
tableXY () ->
Squares = [
#square{x=1,y=1,user="niahoo"},
#square{x=2,y=5,user="oxman"},
#square{x=3,y=6,user="niahoo"},
#square{x=4,y=5,user="oxman"},
#square{x=5,y=6,user="niahoo"},
#square{x=2,y=5,user="oxman"},
#square{x=3,y=3,user="oxman"},
#square{x=1,y=1,user="oxman"},
#square{x=1,y=2,user="niahoo"}
],
lists:foldl(fun(I,Acc) -> dict:append({I#square.x,I#square.y},I,Acc) end, dict:new(),Squares).
test() ->
TableXY = tableXY(),
case dict:find({1,1}, TableXY)
of {ok, Value} -> Value
; error -> []
end.