ErLang程序设计第2版, 4.11 练习题答案
(2) 内置函数 tuple_to_list(T) 能将元组 T 里的元素转换成一个列表。请编写一个名为 my_tuple_to_list(T) 的函数来做同样的事情,但不要使用相同功能的内置函数。
内置函数 tuple_to_list(T) 示例:
erlang:tuple_to_list/1
把一个元组转为一个列表
用法:
tuple_to_list(Tuple) -> [term()]
把一个元组 Tuple 转为一个列表。元组里的元素可以是任何 Erlang 项值。
tuple_to_list({share, {'Ericsson_B', 163}}).
运行结果:[share,{'Ericsson_B',163}]
解题思路:
使用tuple_size(T) 计算元组 T 的元素个数;
使用 lists:seq/2 生成一个由 1 到 tuple_size(T) 的序列正数列表;
使用 element/2 提取元组 T 中第 X 个元素;
最后用列表推断生成最终的结果。
实现源码:
my_tuple_to_list(T) ->
[element(X, T) || X <- lists:seq(1, tuple_size(T))].