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:以编程方式生成列表名_Elixir - Fatal编程技术网

Elixir:以编程方式生成列表名

Elixir:以编程方式生成列表名,elixir,Elixir,在Elixir中,我想创建一个数量可变的列表,这些列表的开头相同。我想以编程的方式命名,例如 列表1=1,2,3 列表2=1,2,3等 我正在尝试的编码方法如下。这可以用长生不老药来做,还是用verboten来做 n = IO.gets("Enter number of lists: ") |> String.trim_trailing n = String.to_integer(n) generatelistnames(n,1) def generatelistnames(0,0),

在Elixir中,我想创建一个数量可变的列表,这些列表的开头相同。我想以编程的方式命名,例如

列表1=1,2,3

列表2=1,2,3等

我正在尝试的编码方法如下。这可以用长生不老药来做,还是用verboten来做

n = IO.gets("Enter number of lists: ") |> String.trim_trailing
n = String.to_integer(n)

generatelistnames(n,1)

def generatelistnames(0,0), do: nil
def generatelistnames(numberofnodes,1) do
if (numberofnodes < 1) do
   loop(0,1)
 else
    listname = "LIST"+Integer.to_string(numberofnodes)
    listname = [1,2,3]
    IO.puts "#{listname}"
    loop(numberofnodes-1,1)
  end
end
n=IO.get(“输入列表数:”)|>String.trim\u
n=字符串。到_整数(n)
generatelistnames(n,1)
def generatelistnames(0,0),do:nil
def generatelistnames(numberofnodes,1)do
如果(numberofnodes<1)do
循环(0,1)
其他的
listname=“LIST”+整数到字符串(numberofnodes)
listname=[1,2,3]
IO.puts“#{listname}”
循环(numberofnodes-1,1)
结束
结束

您的问题本质上是生成一个列表并为这些列表提供一些命名。我假设这些列表的命名完全与用户界面相关,例如,用户输入一个数字,创建几个列表,每个列表都打印出一个名称

在这种情况下,一般来说,编程时需要分离关注点。这涉及到生成列表和UI

在你的伪代码方法中,你试图同时解决这两个问题,而你可以考虑这样的事情:

defmodule MyList do 
  def generate(amount) do
    1..amount
    |> Enum.map(fn e -> 
       # Keep track of the number and produce a list. Currently the list produced is simply hardcoded, but you can modify in any way you want.
      {e, produce_a_list()}
    end)
  end

  def run do
    3
    |> generate()
    |> output()
  end

  defp output(lists) do
    lists
    |> Enum.each(fn {nr, a_list} -> 
      IO.inspect("LIST_#{nr}: ")
      IO.inspect(a_list)
    end)  
  end

  # Replace in any way you want to create the list, randomly or by some previously generated list ....
  defp produce_a_list do
    [1,2,3,4]
  end
end
"LIST_1"
[1, 2, 3, 4]
"LIST_2"
[1, 2, 3, 4]
"LIST_3"
[1, 2, 3, 4]
要查看示例,可以按如下方式运行:
MyList.run
这将使您获得如下效果:

defmodule MyList do 
  def generate(amount) do
    1..amount
    |> Enum.map(fn e -> 
       # Keep track of the number and produce a list. Currently the list produced is simply hardcoded, but you can modify in any way you want.
      {e, produce_a_list()}
    end)
  end

  def run do
    3
    |> generate()
    |> output()
  end

  defp output(lists) do
    lists
    |> Enum.each(fn {nr, a_list} -> 
      IO.inspect("LIST_#{nr}: ")
      IO.inspect(a_list)
    end)  
  end

  # Replace in any way you want to create the list, randomly or by some previously generated list ....
  defp produce_a_list do
    [1,2,3,4]
  end
end
"LIST_1"
[1, 2, 3, 4]
"LIST_2"
[1, 2, 3, 4]
"LIST_3"
[1, 2, 3, 4]

本质上,您的问题是生成一个列表并为这些列表提供一些命名。我假设这些列表的命名完全与用户界面相关,例如,用户输入一个数字,创建几个列表,每个列表都打印出一个名称

在这种情况下,一般来说,编程时需要分离关注点。这涉及到生成列表和UI

在你的伪代码方法中,你试图同时解决这两个问题,而你可以考虑这样的事情:

defmodule MyList do 
  def generate(amount) do
    1..amount
    |> Enum.map(fn e -> 
       # Keep track of the number and produce a list. Currently the list produced is simply hardcoded, but you can modify in any way you want.
      {e, produce_a_list()}
    end)
  end

  def run do
    3
    |> generate()
    |> output()
  end

  defp output(lists) do
    lists
    |> Enum.each(fn {nr, a_list} -> 
      IO.inspect("LIST_#{nr}: ")
      IO.inspect(a_list)
    end)  
  end

  # Replace in any way you want to create the list, randomly or by some previously generated list ....
  defp produce_a_list do
    [1,2,3,4]
  end
end
"LIST_1"
[1, 2, 3, 4]
"LIST_2"
[1, 2, 3, 4]
"LIST_3"
[1, 2, 3, 4]
要查看示例,可以按如下方式运行:
MyList.run
这将使您获得如下效果:

defmodule MyList do 
  def generate(amount) do
    1..amount
    |> Enum.map(fn e -> 
       # Keep track of the number and produce a list. Currently the list produced is simply hardcoded, but you can modify in any way you want.
      {e, produce_a_list()}
    end)
  end

  def run do
    3
    |> generate()
    |> output()
  end

  defp output(lists) do
    lists
    |> Enum.each(fn {nr, a_list} -> 
      IO.inspect("LIST_#{nr}: ")
      IO.inspect(a_list)
    end)  
  end

  # Replace in any way you want to create the list, randomly or by some previously generated list ....
  defp produce_a_list do
    [1,2,3,4]
  end
end
"LIST_1"
[1, 2, 3, 4]
"LIST_2"
[1, 2, 3, 4]
"LIST_3"
[1, 2, 3, 4]

我不认为这是禁止的,但我认为使用可能是处理这类应用程序的更好方法。我不认为这是禁止的,但我认为使用可能是处理这类应用程序的更好方法。一旦我有了列表,我需要能够单独处理它们,以便我可以添加/删除其中的条目,但一旦被创造出来,它们就会受到不同的对待。因此,我需要能够说,例如,List.delete_at(List_1,3)。在这种情况下,您需要创建一个映射,其中键由各种列表(List_1,…)的名称表示,其值分别由这些列表内容占据。每当用户向您提供输入时,您都会在该映射内按其名称查找列表。为了管理状态,您可以使用genserver,也可以将其写入磁盘。一旦我有了列表,我需要能够对其进行单独寻址,以便可以添加/删除其中的条目,但一旦创建,它们将被不同地处理。因此,我需要能够说,例如,List.delete_at(List_1,3)。在这种情况下,您需要创建一个映射,其中键由各种列表(List_1,…)的名称表示,其值分别由这些列表内容占据。每当用户向您提供输入时,您都会在该映射内按其名称查找列表。为了管理状态,您可以使用genserver,也可以将其写入磁盘。