F# List.length 始终返回 1

  • 本文关键字:返回 List length list f#
  • 更新时间 :
  • 英文 :


为什么我得到如下输出?

> List.length [1,2,3];;
val it : int = 1
> List.length [1,2,3,4];;
val it : int = 1

我期望得到 3 和 4!我是否使用了不正确的函数调用?

这与函数无关 - 这与您输入列表项的方式有关。你用,而不是;

> List.length [1,2,3];;
val it : int = 1
> List.length [1;2;3];;
val it : int = 3

原因是[1,2,3]是一个只有一个项目的元组列表

> [1,2,3];;
val it : (int * int * int) list = [(1, 2, 3)]

查看输出中的(..) - 可悲的是,您可以在没有(..)的情况下输入元组,许多人都爱上了它

如果您改用;,您将获得包含 3 个元素的整数列表

> [1;2;3];;
val it : int list = [1; 2; 3]

最新更新