Mam problemy z rekordami w jednym z moich modułów.Erlang records records
I zdefiniowane na szczycie mojego kodu zapis jako:
-record(user, {pid,
name,
nick}).
w kilku słowach każdy użytkownik będzie reprezentowana jako proces z własnymi polami PID i innych.
Później w module robie co następuje:
Pid = UserPid,
GetUser = fun(X) ->
if X#user.pid =:= Pid -> true;
X#user.pid=/= Pid -> false
end
end,
User = lists:filter(GetUser, Users),
io:format("User pid is ~p~n",[User#user.pid]).
Uruchomienie tego kodu uzyskać:
** exception error: {badrecord,user}
Ale jeśli to zrobię:
io:format("User ~p~n",[User]).
Drukuje
User [{user,<0.33.0>,name1,nick1}]
Czy ktoś może wskazać, czego mi brakuje?
Dzięki
+1 Bardzo schludny przykład idiomatycznego Erlanga. –
Zrobiłbym "[U || U <- Users, U # user.pid =: = P] '. –
@Adam Lindberg: +1. Jeszcze bardziej czytelny. –