Zak*_*akC 4 ocaml functional-programming notation nomenclature purely-functional
我的理解是"纯OCaml"意味着OCaml中标准的一切,包括其非 "纯粹"功能特征,而"纯功能"意味着通常的属性:没有副作用,没有异常处理等.从这个意义上说,"纯OCaml"实现与OCaml相反,例如,C或C++实现.
然而,最近我和一个非常坚持认为"纯OCaml"的人在某些圈子里,对OCaml的"纯粹功能子集"进行了辩论.
这两个含义在社区中是否真正使用过?是否存在这种歧义?是否有指向某些备受推崇的消息来源在第二种意义上使用"纯OCaml"?
很难回答这些问题,因为整个社区都被问到了.它们更适合OCaml邮件列表,尽管那里的人可能有点沮丧.
所以,我不能回答整个社区,但我个人认为你就在这里.当有人说"纯OCaml"时,他通常意味着,程序仅以OCaml语言实现,没有任何C存根.
我从来没有听说过功能纯粹的OCaml子集.而且我怀疑,使用纯功能语言功能实现某些功能几乎是不可能的.例如,String模块,异常,整个IO子系统,严格来说是非纯的.
"纯OCaml"是指仅以OCaml语言编写的应用程序或库.
它排除了Obj模块的使用,因为它"不是OCaml语言的一部分"(Xavier Leroy在caml-list http://article.gmane.org/gmane.comp.lang.caml.general/47389上).
根据上下文,它可能会或可能不会容忍与标准的OCaml分配出货,但不是标准库的一部分(C库Str,Unix...).