该语言的三个主要构造是定义、语句和表达式。定义可以包含语句和表达式,语句可以包含定义和表达式,一种表达式可以包含语句。我使用联合类型来表示所有这些类型,所以我可以很容易地对它们使用模式匹配。理想情况下,我希望将这些代码放在不同的文件中,但OMake抱怨循环依赖问题。据我所知,跨模块的循环类型定义是不允许的。据我所知,解决这个问题的唯一方法是同时定义所有三种类型:and stmt = ...
and e
假设我希望创建一个OCaml程序,该程序获取一个整数列表,并创建第一项的两倍、第二项的三倍和第三项的两倍,依此类推。;;
let foo = maths_stuff [1;2;3;4;5;6] (* Should be 54 *) 目前我得到了一个Error: Unbound value tripler错误,因为OCaml不知道它是什么,但是我不能在不使用doubler的情况下重新排序这两个函数。指定两个函数之间的循环依赖关系<em
出于学习的原因,我想在OCaml中使用For循环,而不是递归。我做了一点研究,并应用了一个(https://ocaml.org/learn/tutorials/camlp4_3.10/foreach_tutorial.html)的例子: let a_list =因此,我不能做这样的事情(其中'a','b',...是任何类型的变量): let a_list = [a;b;c