Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir:最多向字符串追加k次_Elixir - Fatal编程技术网

Elixir:最多向字符串追加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,"") 实现这一点有多种方法,包括列表理解,但使用似乎是一个很好的选择 字

在命令式语言中,我们可以使用for循环将最多k次附加到字符串

 str = ""
 k=5
 for i=1 to i=k:
    str = str + "a" 
上述代码将生成一个长度为k
aaaaa
的字符串。现在,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