相关疑难解决方法(0)

列表的最后一个元素的值

如何获取List的最后一个元素的值?我注意到List.hd(或.Head)返回一个项目,而List.tl(或.Tail)返回一个List.

转发列表并获得高清唯一的方法吗?谢谢.

f# reverse list tail

18
推荐指数
4
解决办法
1万
查看次数

为什么你只能在函数式语言中添加前缀?

我只使用了3种函数式语言 - scala,erlang和haskell,但在所有这三种语言中,构建列表的正确方法是将新数据添加到前面然后反转它而不是仅仅追加到最后.当然,您可以附加到列表,但这会导致构建一个全新的列表.

为什么是这样?我可以想象这是因为列表在内部实现为链接列表,但为什么它们不能仅作为双链表实现,所以你可以追加到最后没有惩罚?是否有某些原因所有功能语言都有此限制?

language-agnostic functional-programming

17
推荐指数
2
解决办法
491
查看次数

功能O(1)从第一个元素列表数据结构追加和O(n)迭代

我正在寻找支持以下操作的功能数据结构:

  • 附加,O(1)
  • 按顺序迭代,O(n)

正常的功能链表仅支持O(n)附加,而我可以使用普通LL然后反转它,反向操作也是O(n),它(部分地)否定O(1)cons操作.

f# functional-programming data-structures

5
推荐指数
3
解决办法
732
查看次数