返回列表的第n个元素

WTF

我想找到我的第n个元素list[1,2,3]我想使用递归选择元素2。

我已经使用以下方法找到了长度:

def module T do
  def main do
    len([1,2,3])
  end
  def len([]), do: 0
  def len([h|t]), do: 1+len(t)
end
伊万·尤罗夫(Ivan Yurov)

定义了一个库函数(Enum.at/2),但是如果您想要自己的实现,请执行以下操作:

# Little extra to handle negative positions (from the end of the list)
# element_at([1,2,3], -1) == 3
def element_at(list, n) when n < 0 do
  element_at(Enum.reverse(list), -n - 1)
end

def element_at([], _), do: nil
def element_at([h | _t], 0), do: h
def element_at([_h | t], n), do: element_at(t, n - 1)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章