作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
例如:当我想连接一个 int 列表时:[1, 2, 3]
与 x
我的代码是:
[1, 2, 3] @ [x]
但在另一种情况下,我有一个以列表为参数的函数,
val foo : int list
print_foo
服用
foo
是一个参数,返回类型是
val print_foo : int list list
print_foo [foo]
[foo]
在这种情况下被类型检查接受,但在
[[x]]
也是同样的问题
[x]
或
[[x]]
, ETC...?
最佳答案
[x]
表示包含一个元素的列表:x
.[[x]]
表示包含一个元素的列表:包含一个元素的列表:x
.
所以,如果你说 x
是 4
,然后 [x] = [4]
是仅包含 4
的列表, 和 [[x]] = [[4]]
是仅包含仅包含 4 的列表的列表。
如您所见,[x]
简单地说x
自己进入一个列表。如果 x = [1, 2, 3]
(也就是说,x
本身就是一个列表),那么您可能不想使用 [x] (= [[1, 2, 3]])
调用函数,然后给它一个包含原始列表的列表,而不是列表本身。当然,这可能是完全合法的,并且在某些情况下是需要的,但如果您不确定,很可能不需要它。
所以,如果你有 foo
是 int list
,然后您调用print_foo [foo]
,您是在说:“打印此列表,其中包含我要打印的列表。”你可能想说的是print_foo foo
,您省略了冗余列表包装器。这可以解释为“打印我要打印的这个列表”。
关于list - 如何在 Ocaml 中使用 [x]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8598877/
我是一名优秀的程序员,十分优秀!