Mi sto facendo conoscere ad Erlang da Armstrong "Programming Erlang". Un esercizio è scrivere una reeimplementazione della tuple_to_list/1 BIF. La mia soluzione mi sembra piuttosto poco elegante, soprattutto a causa della funzione di aiuto che uso. C'è un modo più Erlang-ish di fare questo?Erlang: elegante tuple_to_list/1
tup2lis({}) -> [];
tup2lis(T) -> tup2list_help(T,1,tuple_size(T)).
tup2list_help(T,Size,Size) -> [element(Size,T)];
tup2list_help(T,Pos,Size) -> [element(Pos,T)|tup2list_help(T,Pos+1,Size)].
Grazie mille per le vostre idee. :)
prendere conoscenza che di le implementazioni di seguito sono ricorsive in coda. – Tilman
Non c'è niente di sbagliato nell'avere funzioni di aiuto, spesso ne hai bisogno e sono il modo migliore di fare le cose. E non preoccuparti troppo della ricorsione in coda, vedi http://www.erlang.org/doc/efficiency_guide/listHandling.html#id64720 – rvirding