"纯粹的OCaml"在文学和习俗中是否等同于"纯粹的功能性"?

Zak*_*akC 4 ocaml functional-programming notation nomenclature purely-functional

我的理解是"纯OCaml"意味着OCaml中标准的一切,包括 "纯粹"功能特征,而"纯功能"意味着通常的属性:没有副作用,没有异常处理等.从这个意义上说,"纯OCaml"实现与OCaml相反,例如,C或C++实现.

然而,最近我和一个非常坚持认为"纯OCaml"的人在某些圈子里,对OCaml的"纯粹功能子集"进行了辩论.

这两个含义在社区中是否真正使用过?是否存在这种歧义?是否有指向某些备受推崇的消息来源在第二种意义上使用"纯OCaml"?

ivg*_*ivg 8

很难回答这些问题,因为整个社区都被问到了.它们更适合OCaml邮件列表,尽管那里的人可能有点沮丧.

所以,我不能回答整个社区,但我个人认为你就在这里.当有人说"纯OCaml"时,他通常意味着,程序仅以OCaml语言实现,没有任何C存根.

我从来没有听说过功能纯粹的OCaml子集.而且我怀疑,使用纯功能语言功能实现某些功能几乎是不可能的.例如,String模块,异常,整个IO子系统,严格来说是非纯的.


Mar*_*bon 6

"纯OCaml"是指仅以OCaml语言编写的应用程序或库.

它排除了Obj模块的使用,因为它"不是OCaml语言的一部分"(Xavier Leroy在caml-list http://article.gmane.org/gmane.comp.lang.caml.general/47389上).

根据上下文,它可能会或可能不会容忍与标准的OCaml分配出货,但不是标准库的一部分(C库Str,Unix...).


Ash*_*wal 5

"纯OCaml"绝对不代表"OCaml的纯功能子集".OCaml的非功能性方面是OCaml的固有重要部分(例如,Harper提到了良性效应的价值),因此"纯OCaml"并不意味着这一点.