我正在通过 Armstrong 的“Programming Erlang”向我介绍 Erlang。一个练习是编写 tuple_to_list/1 BIF 的重新实现。我的解决方案对我来说似乎相当不雅,尤其是因为我使用了辅助函数。有没有更多的 Erlang-ish 方式来做到这一点?
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)].
非常感谢您的想法。:)