gpt4 book ai didi

list - 如何在 OCaml 中编写列表?

转载 作者:行者123 更新时间:2023-12-02 07:34:57 24 4
gpt4 key购买 nike

如果我想用 OCaml 编写 list.ml


第一季度

哪种方式是正确的?

type 'a list = 
| Nil
| Cons of 'a * ('a list)

type 'a list = 
| Nil
| Cons of 'a * 'a list

有什么区别吗?


第二季度

此外,如何将类型定义中的 Cons 定义为 ::


第三季度

如何在类型定义中将 Nil 定义为 []

最佳答案

第一季度 -没有区别;每个都有两个与 Cons 关联的参数。虽然 Cons of ('a * 'a list) 是不同的,因为它有一个参数,一个元组。如果您构造一个元组并尝试将其包装在 Cons 中,例如 let x = a,Nil in Cons x,您会发现这是一个重要的区别。选择取决于您计划如何构建元素或数据的某些语义。在这种特殊情况下,不应使用括号。

Q2 -您不能将 : 用作中缀函数名称的第一个字符,因为它是该语言中的关键字 -- :: 无论如何也是一个关键字。一般来说,中缀运算符可以在函数名称周围用括号定义,并且有一个 special set of symbols。允许,

let (!!) a b = Cons( a,b )

第三季度 -这需要命名一个标识符 [],如 let [] = Nil。这些字符在命名约定中是不允许的(参见上面的相同链接),因为它们也是单独的关键字。

关于list - 如何在 OCaml 中编写列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17552801/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com