Functional programming 为什么是长生不老药';s Enum.count是否不返回数字?

Functional programming 为什么是长生不老药';s Enum.count是否不返回数字?,functional-programming,elixir,Functional Programming,Elixir,我有以下意见: [ [ {"title", "Aaaaaaaaa aaaaaaaaaaa aa aaa oaaaaaaaa"}, {"title", "Aaaaaaa aa aaaa aaa.aa"}, {"title", "Aaaaaaaaaaaa Aaaaaaa, aaa Aaaaaaa"}, {"title", "Aaaa Aaaaaaaa aaaa Aaaaa"}, {"title", "Aaaaaaa Aaaaaaa aaaa Aaaaa"}

我有以下意见:

[
  [
    {"title", "Aaaaaaaaa aaaaaaaaaaa aa aaa oaaaaaaaa"},
    {"title", "Aaaaaaa aa aaaa aaa.aa"},
    {"title", "Aaaaaaaaaaaa Aaaaaaa, aaa Aaaaaaa"},
    {"title", "Aaaa Aaaaaaaa aaaa Aaaaa"},
    {"title", "Aaaaaaa Aaaaaaa aaaa Aaaaa"},
    {"title", "Aaaaa Aaaaaaa aa Aaaaaa"},
    {"title", "Aaaaaaaaa Aaaaa Aaaa Aaaaaaa, Aaa Aaaaaaa"},
    {"title",
     "Aaaaaaaaa Aaaaaaa Aaaaaa aaaaaaaa Aaaaaaaaaaaaa aaa Aaaaaaaaaa Aaaaaa Aaaaaa Aaaaaaa"},
    {"title", "Aaaaaaaaaaaa Aaaaaaa"},
    {"title", "Aaaaaaaaa Aaaaa Aaaa Aaaa"}
  ],
  [
    {"url",
     "http://localhost:3000/aaaaaaaaa-aaaaaaaaaaa-aa-aaa-aaaaaaaaa/"},
    {"url", "http://localhost:3000/aaaaaaa-aa-aaaa-aaa-aa/"},
    {"url", "http://localhost:3000/aaaaaaaaaaaa-aaaaaaa-aaa-aaaaaaa/"},
    {"url", "http://localhost:3000/aaaa-aaaaaaaa-aaaa-aaaaa/"},
    {"url", "http://localhost:3000/aaaaaaa-aaaaaaa-aaaa-aaaaa/"},
    {"url", "http://localhost:3000/aaaaa-aaaaaaa-aa-aaaaaa/"},
    {"url",
     "http://localhost:3000/aaaaaaaaa-aaaa-aaaa-aaaaaaa-aaa-aaaaaaa/"},
    {"url",
     "http://localhost:3000/aaaaaaaaa-aaaaaaa-aaaaaa-aa-aaa-aaaaaaaaaaaaa-aaa-aaaaaaaaaa-aaaaa-aaaaaa-aaaaaaa/"},
    {"url", "http://localhost:3000/aaaaaaaaaaaa-aaaaaaa/"},
    {"url", "http://localhost:3000/aaaaaaaaa-aaaaa-aaaa-aaaa/"}
  ]
]
我启动iex,并将其分配给一个变量,然后执行计数映射,就像在这个iex会话中:

Interactive Elixir (1.7.3) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> input = [
...(1)>   [
...(1)>     {"title", "Aaaaaaaaa aaaaaaaaaaa aa aaa oaaaaaaaa"},
...(1)>     {"title", "Aaaaaaa aa aaaa aaa.aa"},
...(1)>     {"title", "Aaaaaaaaaaaa Aaaaaaa, aaa Aaaaaaa"},
...(1)>     {"title", "Aaaa Aaaaaaaa aaaa Aaaaa"},
...(1)>     {"title", "Aaaaaaa Aaaaaaa aaaa Aaaaa"},
...(1)>     {"title", "Aaaaa Aaaaaaa aa Aaaaaa"},
...(1)>     {"title", "Aaaaaaaaa Aaaaa Aaaa Aaaaaaa, Aaa Aaaaaaa"},
...(1)>     {"title",
...(1)>      "Aaaaaaaaa Aaaaaaa Aaaaaa aaaaaaaa Aaaaaaaaaaaaa aaa Aaaaaaaaaa Aaaaaa Aaaaaa Aaaaaaa"},
...(1)>     {"title", "Aaaaaaaaaaaa Aaaaaaa"},
...(1)>     {"title", "Aaaaaaaaa Aaaaa Aaaa Aaaa"}
...(1)>   ],
...(1)>   [
...(1)>     {"url",
...(1)>      "http://localhost:3000/aaaaaaaaa-aaaaaaaaaaa-aa-aaa-aaaaaaaaa/"},
...(1)>     {"url", "http://localhost:3000/aaaaaaa-aa-aaaa-aaa-aa/"},
...(1)>     {"url", "http://localhost:3000/aaaaaaaaaaaa-aaaaaaa-aaa-aaaaaaa/"},
...(1)>     {"url", "http://localhost:3000/aaaa-aaaaaaaa-aaaa-aaaaa/"},
...(1)>     {"url", "http://localhost:3000/aaaaaaa-aaaaaaa-aaaa-aaaaa/"},
...(1)>     {"url", "http://localhost:3000/aaaaa-aaaaaaa-aa-aaaaaa/"},
...(1)>     {"url",
...(1)>      "http://localhost:3000/aaaaaaaaa-aaaa-aaaa-aaaaaaa-aaa-aaaaaaa/"},
...(1)>     {"url",
...(1)>      "http://localhost:3000/aaaaaaaaa-aaaaaaa-aaaaaa-aa-aaa-aaaaaaaaaaaaa-aaa-aaaaaaaaaa-aaaaa-aaaaaa-aaaaaaa/"},
...(1)>     {"url", "http://localhost:3000/aaaaaaaaaaaa-aaaaaaa/"},
...(1)>     {"url", "http://localhost:3000/aaaaaaaaa-aaaaa-aaaa-aaaa/"}
...(1)>   ]
...(1)> ]
[
  [
    {"title", "Aaaaaaaaa aaaaaaaaaaa aa aaa oaaaaaaaa"},
    {"title", "Aaaaaaa aa aaaa aaa.aa"},
    {"title", "Aaaaaaaaaaaa Aaaaaaa, aaa Aaaaaaa"},
    {"title", "Aaaa Aaaaaaaa aaaa Aaaaa"},
    {"title", "Aaaaaaa Aaaaaaa aaaa Aaaaa"},
    {"title", "Aaaaa Aaaaaaa aa Aaaaaa"},
    {"title", "Aaaaaaaaa Aaaaa Aaaa Aaaaaaa, Aaa Aaaaaaa"},
    {"title",
     "Aaaaaaaaa Aaaaaaa Aaaaaa aaaaaaaa Aaaaaaaaaaaaa aaa Aaaaaaaaaa Aaaaaa Aaaaaa Aaaaaaa"},
    {"title", "Aaaaaaaaaaaa Aaaaaaa"},
    {"title", "Aaaaaaaaa Aaaaa Aaaa Aaaa"}
  ],
  [
    {"url", "http://localhost:3000/aaaaaaaaa-aaaaaaaaaaa-aa-aaa-aaaaaaaaa/"},
    {"url", "http://localhost:3000/aaaaaaa-aa-aaaa-aaa-aa/"},
    {"url", "http://localhost:3000/aaaaaaaaaaaa-aaaaaaa-aaa-aaaaaaa/"},
    {"url", "http://localhost:3000/aaaa-aaaaaaaa-aaaa-aaaaa/"},
    {"url", "http://localhost:3000/aaaaaaa-aaaaaaa-aaaa-aaaaa/"},
    {"url", "http://localhost:3000/aaaaa-aaaaaaa-aa-aaaaaa/"},
    {"url", "http://localhost:3000/aaaaaaaaa-aaaa-aaaa-aaaaaaa-aaa-aaaaaaa/"},
    {"url",
     "http://localhost:3000/aaaaaaaaa-aaaaaaa-aaaaaa-aa-aaa-aaaaaaaaaaaaa-aaa-aaaaaaaaaa-aaaaa-aaaaaa-aaaaaaa/"},
    {"url", "http://localhost:3000/aaaaaaaaaaaa-aaaaaaa/"},
    {"url", "http://localhost:3000/aaaaaaaaa-aaaaa-aaaa-aaaa/"}
  ]
]
iex(2)> input |> Enum.map(fn item -> Enum.count(item) end)
'\n\n'
不清楚为什么上面的iex会话不返回包含[10,10]的列表。我做错了什么


谢谢

iex使用协议
IO.Inspect
,该协议将结果视为字符列表,因此产生
\n\n
。如果使用此行:

iex> input |> Enum.map(fn item -> Enum.count(item) end) |> hd |> to_string |> String.to_integer
您将获得:

iex> 10
这与显示此列表时遇到的问题相同:

iex> list = [7,8,9]
'\a\b\t'
解决方案:您可以将数字(如0)添加到地图中,以强制结果显示为数字列表:

iex> [0] ++ (input |> Enum.map(fn item -> Enum.count(item) end))
[0,10,10]

本主题已经讨论过

iex使用协议
IO.Inspect
,它将结果视为字符列表,因此产生
\n\n
。如果使用此行:

iex> input |> Enum.map(fn item -> Enum.count(item) end) |> hd |> to_string |> String.to_integer
您将获得:

iex> 10
这与显示此列表时遇到的问题相同:

iex> list = [7,8,9]
'\a\b\t'
解决方案:您可以将数字(如0)添加到地图中,以强制结果显示为数字列表:

iex> [0] ++ (input |> Enum.map(fn item -> Enum.count(item) end))
[0,10,10]

这个话题已经讨论过了

参见。@Dogbert,我能指出你给出的链接和@Geo提出的问题之间有一点不同吗?答案中没有明确提到,当您在iex中显示某些内容时,它将使用
IO.Inspect
。因此,我认为这一问题的附加值很小。例如,您不能在iexSee中直接使用
charlists::as_list
。@Dogbert,我能指出您给出的链接和@Geo提出的问题之间有细微的区别吗?答案中没有明确提到,当您在iex中显示某些内容时,它将使用
IO.Inspect
。因此,我认为这一问题的附加值很小。例如,您不能在iex中直接使用
charlists::as_list