Elixir:最多向字符串追加k次
在命令式语言中,我们可以使用for循环将最多k次附加到字符串Elixir:最多向字符串追加k次,elixir,Elixir,在命令式语言中,我们可以使用for循环将最多k次附加到字符串 str = "" k=5 for i=1 to i=k: str = str + "a" 上述代码将生成一个长度为kaaaaa的字符串。现在,elixir中没有任何for/while循环,唯一的方法似乎是递归。我想知道是否还有其他琐碎的方法可以达到同样的效果。这样的事情可能吗 In range(1..k) |> Enum.join(a,"") 实现这一点有多种方法,包括列表理解,但使用似乎是一个很好的选择 字
str = ""
k=5
for i=1 to i=k:
str = str + "a"
上述代码将生成一个长度为kaaaaa
的字符串。现在,elixir中没有任何for/while循环,唯一的方法似乎是递归。我想知道是否还有其他琐碎的方法可以达到同样的效果。这样的事情可能吗
In range(1..k)
|> Enum.join(a,"")
实现这一点有多种方法,包括列表理解,但使用似乎是一个很好的选择 字符串。重复 列表推导 这可能是最优雅的方式
for _ <- 1..k, do: "a", into: ""
流模块
对并行计算有用。感谢@mudasobwa
Stream.repeatedly(fn -> "a" end)
|> Enum.take(5)
|> Enum.join
Stream.cycle(["a"])
|> Enum.take(5)
|> Enum.join
有一个.code>流。重复(fn->“a”end)|>Enum.take(5)|>Enum.join和Stream.cycle([“a”])|>Enum.take(5)|>Enum.join
:别忘了流
模块,它可能对并行计算非常有帮助。
1..k
|> Enum.map(fn _ -> "a" end)
|> Enum.join("")
Stream.repeatedly(fn -> "a" end)
|> Enum.take(5)
|> Enum.join
Stream.cycle(["a"])
|> Enum.take(5)
|> Enum.join