Erlang 如何向已创建的列表中添加值?

Erlang 如何向已创建的列表中添加值?,erlang,Erlang,我一直在努力做到这一点,但我做不到,我想实现这样的目标: my_function(Input) -> F=fun(X) -> case X of 1 -> "one"; 2 -> "two"; 3 -> "three"; % and so on... you get the idea _ -> "-"

我一直在努力做到这一点,但我做不到,我想实现这样的目标:

my_function(Input) ->
    F=fun(X) -> 
        case X of
            1 -> "one";
            2 -> "two";
            3 -> "three";
            % and so on... you get the idea
            _ -> "-"
        end
     end,

     lists:map(F, Input).
输入示例:[1,2,3,4]

示例输出:[“零”、“一”、“二”、“四”]


为什么不为此使用
lists:map

lists:map
迭代列表中的所有元素,并对元素应用函数。它可能看起来像这样:

my_function(Input) ->
    F=fun(X) -> 
        case X of
            1 -> "one";
            2 -> "two";
            3 -> "three";
            % and so on... you get the idea
            _ -> "-"
        end
     end,

     lists:map(F, Input).
这将是你的核心逻辑。要将其结果添加到现有列表中,只需使用´++´运算符将其追加:

Input=[1,2,3,4,5,6,7,8].
["zero"] ++ my_function(Input).

但是要小心,
++
操作符在使用naveley时存在严重的性能问题(它基本上在追加之前处理左侧列表中的所有条目)。如果你想反复使用它(一遍又一遍地创建一个列表),最好先累加head,然后再反向使用,请参阅以获得澄清…

为输入和输出添加数据。Hi@Atomic\u alarm我在代码之前添加了它们