问题标签 [ocaml]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2644 浏览

emacs - 如何为 OCaml 下载和安装 Emacs?

问这个问题我感觉很迟钝,但我已经把头撞在墙上有一段时间了......

该目录由获取 emacs 的网站链接:http: //ftp.gnu.org/pub/gnu/emacs/。我要哪个文件?我下载emacs-23.1.tar.gz并解压了它,但我现在不知道该怎么办。我找不到任何要执行的文件。

(我正在运行 Vista。)

然后我想在 OCaml 中使用 tuareg 模式。帮助?

0 投票
2 回答
13694 浏览

module - OCaml:设置模块

我想使用 OCaml 生成数据集并在它们之间进行比较。我已经看过诸如Set.OrderTypeSet.Make等模块类型的文档,但我不知道如何初始化一个集合或以其他方式使用它们。

0 投票
2 回答
1722 浏览

sqlite - “cma 文件不是字节码目标文件” => 这是什么意思?

我正在尝试安装 ocaml-sqlite3 绑定,以从 o'caml 程序访问 sqlite 数据库。

配置和制作顺利,但安装失败。因为文件 sqlite3.cma 不是字节码目标文件(见下文)。

造成这种情况的一般原因是什么,您是否经历过这个特定的 lib ?我正在运行从源代码编译的 ocaml v 3.11.1。

编辑: 似乎该文件是由 ocamlfind 提供的,也许问题是由于我使用的是 64 环境?

0 投票
4 回答
3058 浏览

mysql - OCaml 的数据库绑定?

我正在尝试找到一个库来从 OCaml 程序访问数据库。尝试ocaml-sqlite后,我不满意,因为它有点慢。

我见过一个 MySQL 模块,但它似乎没有得到维护。

0 投票
18 回答
1598 浏览

python - 我可以使用什么语言来快速执行这个数据库摘要任务?

所以我写了一个 Python 程序来处理一个小数据处理任务。

这是我想要的计算的虚构语言的非常简短的规范:

也就是说,对于每一行,解析出一个单词、一个浮点数和另一个单词。将它们视为玩家 ID、分数和日期。我想要每个球员的前五名得分和日期。数据量不小,但也不大;大约 630 兆字节。

我想知道我应该用什么真正的可执行语言来编写它以使其同样简短(如下面的 Python)但要快得多。

这是一些示例输入数据:

这是我从中得到的输出:

有 7 个值3,因此我们删除cd值,因为它们的bb值将它们排除在前 5 之外。因为4只有一个值,所以它的“前 5”只包含那个值。

这比在 MySQL 中执行相同的查询运行得更快(至少,我们发现执行查询的方式),但我很确定它大部分时间都花在 Python 字节码解释器上。我认为用另一种语言,我可能会让它每秒处理数十万行而不是每分钟。所以我想用一种实现速度更快的语言来编写它。

但我不确定选择什么语言。

我一直无法弄清楚如何在 SQL 中将其表达为单个查询,实际上我对 MySQL 的能力甚至只是 select * from foo into outfile 'bar';输入数据的能力不感兴趣。

C 是一个显而易见的选择,但是诸如line.split()对 2 元组列表进行排序和制作哈希表之类的事情需要编写一些标准库中没有的代码,所以我最终会得到 100 行或更多的代码,而不是 14 行。

C++ 似乎是一个更好的选择(它在标准库中有字符串、映射、对和向量),但似乎使用 STL 的代码会更加混乱。

OCaml 会很好,但它是否具有等效的line.split(),我会对其地图的性能感到难过吗?

Common Lisp 可能有用吗?

是否有类似 Matlab 的数据库计算等价物,可以让我将循环向下推入快速代码?有人试过吗?

(编辑:通过提供一些示例输入和输出数据来回应 davethegr8 的评论,并修复了 Python 程序中的错误!)

(附加编辑:哇,这个评论线程到目前为止真的很棒。谢谢大家!)

编辑:

2007 年在 sbcl-devel 上提出了一个非常相似的问题(感谢 Rainer!),这是awkWill Hartung 用于生成一些测试数据的脚本(尽管它没有真实数据的 Zipfian 分布):

0 投票
1 回答
1715 浏览

ocaml - Ocaml:设置当前工作目录?

如何在 windows 系统上设置当前工作目录?

0 投票
4 回答
7199 浏览

module - OCaml:树函数

有没有处理树的模块或函数?我有一个看起来像这样的类型:

我正在努力插入、删除子树等。

我用过谷歌,但找不到任何东西。

0 投票
4 回答
1878 浏览

c# - 函子和“泛型”有什么区别

我在看OCaml 的 functorsC++在我看来,它与/ C#/中所谓的通用对象非常相似Java。如果您暂时忽略 Java 的类型擦除,并忽略 C++ 模板的实现细节(我对语言特性感兴趣),函子与泛型完全一致。如果我理解正确,仿函数会根据您提供的类型为您提供一组新的函数,例如

但是你可以粗略地重写 OCaml 的

进入C#

当然有一点不同,因为仿函数会影响 a Module(这只是一堆类型函数和值定义,类似于C#'s 命名空间)。

但仅此而已吗?函子仅仅是应用于命名空间的泛型吗?或者我缺少的仿函数和泛型之间是否有任何显着差异。

即使仿函数只是命名空间的泛型,这种方法的显着优势是什么?类也可以用作使用嵌套类的临时命名空间。

0 投票
4 回答
1092 浏览

python - 用于自动完成的 Python 类型推断

是否可以使用类型推断的 Ocaml/Haskell 算法为 Python 建议更好的自动完成?

这个想法是在以下情况下建议自动完成:

有什么好的起点吗?

0 投票
2 回答
553 浏览

syntax - “match ... true -> foo | false -> bar”在 Ocaml 中是否有特殊含义?

我在阅读代码的整个 Ocaml 项目的各个地方都遇到了以下构造。

乍一看,它就像通常的if声明一样工作。乍一看,它.. 像往常一样工作if!乍一看,我决定问 SO。if这个结构与特殊情况下重要的陈述是否有特殊含义或细微差别?