Recursion 如何递归地更改字符串向字符串中添加一个数字,并将每个数字添加到列表中

Recursion 如何递归地更改字符串向字符串中添加一个数字,并将每个数字添加到列表中,recursion,append,elixir,Recursion,Append,Elixir,我正在进行一个项目,在这个项目中,我必须更改字符串并将其添加到列表中 大概是这样的: def函数(字符串,金额),do:“字符串+金额”结束 数量一直增加到n 下一步是将此字符串添加到列表中,因此我将收到: [string1, string2,...., string] 如何使用Elixir将这个字符串递归地附加到基于增加的数量的列表中?如果我理解得很好,您需要一个方法,该方法将接受一个字符串和一个整数,然后以“字符串+1”、“字符串+2”的形式返回n个字符串的列表。。。“字符串+n” 如果是

我正在进行一个项目,在这个项目中,我必须更改字符串并将其添加到列表中

大概是这样的:

def函数(字符串,金额),do:“字符串+金额”结束

数量一直增加到n

下一步是将此字符串添加到列表中,因此我将收到:

[string1, string2,...., string]

如何使用Elixir将这个字符串递归地附加到基于增加的数量的列表中?

如果我理解得很好,您需要一个方法,该方法将接受一个字符串和一个整数,然后以“字符串+1”、“字符串+2”的形式返回n个字符串的列表。。。“字符串+n”

如果是这种情况,您可以将Enum.map用于以下范围:

defmodule StringHelper do
  def string_list(value, n) when n >= 1 do
    Enum.map(1..n, &"#{value} + #{&1}")
  end
end
例如:

iex> StringHelper.string_list("foo", 5)
["foo + 1", "foo + 2", "foo + 3", "foo + 4", "foo + 5"]

您可能会更好地执行@potibas建议的操作,但如果必须递归执行,则需要保留一个累加器(结果列表),并且需要跟踪当前的n。比如说:

defmodule-StringHelper-do
def字符串_列表(值,n,acc\\[])
n>0时的def字符串列表(值、n、acc)
字符串列表(值,n-1,[“{value}{n}”| acc])
结束
定义字符串列表(u,u,acc),do:acc
结束
然后你可以像这样使用它:

iex>StringHelper.string\u列表(“hello”,5)
[“hello1”、“hello2”、“hello3”、“hello4”、“hello5”]
注意,对于n