【发布时间】:2016-06-13 20:14:06
【问题描述】:
我正在研究 Programming Elixir (PragProg) 中的示例问题。问题是编写一个将数字from 返回到to 的函数。我的解决方案如下。但是,有时它们会返回字符(相当于它们的 ascii)。我怎样才能避免这种情况并只返回数字。
defmodule MyList do
def span(), do: []
def span(from), do: [from]
def span(from, to) when from == to, do: [from]
def span(from, to) when from > to, do: [from] ++ span(from - 1, to)
def span(from, to) when from < to, do: [from] ++ span(from + 1, to)
end
MyList.span(31,34) #=> [31,32,33,34]
MyList.span(-5,-8) #=> [-5,-6,-7,-8]
MyList.span(65,68) #=> 'ABCD' (I need a list with numbers 65 to 68)
【问题讨论】:
-
> MyList.span(65, 68) == [65, 66, 67, 68] #=> true,这就是控制台使用charcodes解释列表的方式。 stackoverflow.com/questions/32804904/… -
当然有模式匹配但我想打印数字(想象一个非技术用户使用它,他们会提出一个缺陷......哈哈)
-
然后
IO.inspect [65, 66, 67, 68], char_lists: :as_lists
标签: elixir