Przedstawiam się Erlangowi przez Armstrongs "Programming Erlang". Jednym z ćwiczeń jest napisanie reeimplementacji tuple_to_list/1 BIF. Moje rozwiązanie wydaje mi się raczej nieeleganckie, szczególnie z powodu funkcji pomocnika, której używam. Czy istnieje inny sposób na robienie tego Erlang?Erlang: elegancka 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)].
Dziękuję bardzo za Twoje pomysły. :)
Bądź bardziej świadomy, które z poniższe implementacje są rekursywne. – Tilman
Nie ma nic złego w funkcjach pomocniczych, często ich potrzebujesz i są one najlepszym sposobem robienia rzeczy. I nie przejmuj się rekurencją ogona, zobacz http://www.erlang.org/doc/efficiency_guide/listHandling.html#id64720 – rvirding