将大于10的整数从灵丹妙药表中分解为其组成部分

问题描述 投票:0回答:1

我如何把一个列表说 [1,2,3,45,67,] 并将其分解为 [1,2,3,4,5,6,7]?

erlang elixir
1个回答
5
投票

可以不用进行字符串转换。

Enum.flat_map([1, 2, 3, 45, 67], &Integer.digits/1)

0
投票

你可以试试这样的方法:

[1, 2, 3, 45, 67] 
|> Enum.map(&Integer.to_string/1) 
|> Enum.flat_map(&String.graphemes/1)
|> Enum.map(&String.to_integer/1) # results in [1, 2, 3, 4, 5, 6, 7]

0
投票

使用 Kernel.SpecialForms.for/1 理解力。

for << <<c>> <- Enum.join([1, 2, 3, 45, 67]) >>, do: c - ?1 + 1
#⇒ [1, 2, 3, 4, 5, 6, 7]
© www.soinside.com 2019 - 2024. All rights reserved.