Tôi được giới thiệu về Erlang bởi Armstrongs "Lập trình Erlang". Một bài tập là viết một bản tái xác nhận của tuple_to_list/1 BIF. Giải pháp của tôi có vẻ khá không phù hợp với tôi, đặc biệt là vì chức năng trợ giúp tôi sử dụng. Có một cách Erlang-ish hơn để làm điều này?Erlang: thanh lịch 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)].
Cảm ơn bạn rất nhiều vì ý tưởng của bạn. :)
Hãy cho mình biết mà của các triển khai bên dưới là đệ quy đuôi. – Tilman
Không có gì sai khi có các hàm trợ giúp, thường bạn cần chúng và chúng là cách tốt nhất để làm việc. Và đừng lo lắng về việc đệ quy đuôi, hãy xem http://www.erlang.org/doc/efficiency_guide/listHandling.html#id64720 – rvirding