244得票19回答
在函数式编程中,什么是函子?

我在阅读一些关于函数式编程的文章时,几次遇到了“Functor”这个术语,但作者通常假设读者已经理解了该术语。在网上搜索提供的是过度技术化的描述(参见维基百科文章)或者是极其模糊的描述(请参见此ocaml-tutorial网站下的Functors部分)。 可以有人友好地定义这个术语、解释它的...

172得票1回答
悄悄地将镜头和 CPS 带过价值限制

我正在编写van Laarhoven透镜的一种OCaml编码,但由于值限制而遇到了困难。 相关代码如下: module Optic : sig type (-'s, +'t, +'a, -'b) t val lens : ('s -> 'a) -> ('s -> ...

130得票3回答
F# 转换为 OCaml

F#源自OCaml,但有哪些重要的元素缺失或添加了呢?具体来说,我想知道学习OCaml的资源对于想学习F#的人是否也有用。

123得票5回答
为什么OCaml中的整数只有31位?

我还没有在其他地方看到这种“特性”。我知道32位是用于垃圾回收的。但为什么只有int类型才是这样呢,而其他基本类型不是呢?

116得票6回答
为什么OCaml/F#中的函数默认情况下不是递归的?

为什么 F# 和 OCaml(以及可能其他语言)中的函数默认情况下不是递归的? 换句话说,为什么语言设计者们会决定在声明中明确要求您键入 rec,这被认为是一个好主意:let rec foo ... = ... 为什么不默认给函数递归能力?为什么需要显式使用 rec 关键字?

106得票2回答
SML和OCaml有什么区别?

这两种机器学习语言有何不同之处?

92得票7回答
为什么在函数式语言中编写编译器更容易?

我一直在思考这个问题很长时间,但是在谷歌上和 StackOverflow 上也找不到答案。如果有重复的话,我很抱歉。 很多人似乎认为,用OCaml和Haskell等函数式语言编写编译器和其他语言工具比用命令式语言更有效率和更容易。 这是真的吗?如果是,为什么在函数式语言中编写它们比在命令式...

75得票9回答
解释模式匹配与switch的区别

我一直在试图向几个人解释switch语句和模式匹配(F#)之间的区别,但是我没有能够很好地解释清楚。大多数时候,他们只是看着我说“那你为什么不使用if...then...else”。 您会如何向他们解释? 编辑!感谢大家的出色答案,我真的希望我能标记多个正确答案。

70得票11回答
OCaml或Haskell中的机器学习?

我希望在一个新项目上使用Haskell或OCaml,因为R太慢了。我需要能够使用支持向量机,最好将每个执行分离并并行运行。我想使用一种函数式语言,我感觉这两种语言在性能和优雅方面是最好的选择(我喜欢Clojure,但它在短期测试中不够快)。我倾向于使用OCaml,因为它似乎有更多与其他语言集成...

68得票5回答
OCaml中的"!="有什么含义吗?

它似乎是一些类型的等值比较,但不适用于字符串。# 3 != 3;; - : bool = false # 3 != 2;; - : bool = true 这是预期的结果。# "odp" = "odp";; - : bool = true # "odp" != "odp";; - : bool...