问题标签 [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.
list - Ocaml List:实现追加和映射功能
我目前正在尝试扩展朋友的 OCaml 程序。这是一些数据分析所需的大量函数。由于我不是真正的 OCaml 破解者,因此我目前陷入(对我而言)奇怪的 List 实现:
我发现这实现了某种“惰性”列表,但我完全不知道它是如何工作的。我需要基于上述类型实现一个 Append 和一个 Map 函数。有没有人知道如何做到这一点?
任何帮助将不胜感激!
oop - 基本 OCaml OOP 问题
我正在尝试学习 oCaml,但我对以下程序无效的原因有疑问。
我在尝试编译程序时收到的错误是:
我对为什么特别感兴趣:
是无效的。感谢任何(我的意思是任何)帮助。
oop - 用于将自定义对象作为参数传入的 OCaml 语法
我正在尝试掌握 OCaml 语言语法,但在应用一些 OOP 结构时遇到了一些麻烦。我使用以下代码的目标是拥有一个继承自虚拟类 foo 的类 bar。虚拟类包含三个虚拟方法,我希望将“玩家”对象的实例作为参数。当我编译下面的代码时,我得到了错误:方法 doThis 有类型 'a -> 'b 但应该有类型 player 。这是什么意思(记住,我是新手),我该如何纠正它?
谢谢!
oop - OCaml 结构类型和列表
我在使用 OCaml 中的列表时遇到问题。我读过相互矛盾的陈述,说明是否可以在运行时修改列表。可以在运行时使用 cons 运算符吗?
此外,为什么允许杜宾犬(见下文)出现在吉娃娃名单中?如何将另一只吉娃娃添加到列表中(如最后一行所尝试的)?
oop - 在 OCaml 中即时创建对象
我正在尝试通过使用编译代码而不是顶级代码来学习 OCaml;然而,网上的大部分示例代码似乎更适合后者。
我想在下面的对象的方法中创建一个新的 Foo 。此代码无法编译,引用 doFooProc 定义的语法错误。
此外,“let”语法在类定义中似乎并不友好。这是为什么?
如何在 doFooProc 方法中创建类 foo 的新对象并调用实例化的 foo 的 process 命令?
ocaml - OCaml 中的查找表
我想在 OCaml 中创建一个查找表。该表将有 7000 多个条目,在查找时(通过 int)返回一个字符串。用于此任务的适当数据结构是什么?表是否应该从基本代码中外部化,如果是这样,如何“包括”查找表以便从他/她的程序中访问?
谢谢。
ocaml - Ocaml noobie Q——如何使用累加参数?
我正在尝试通过解决Project Euler的问题 18来学习 Ocaml。我知道我想做什么,只是不知道该怎么做。
我有三个列表:
我想将数字 list2 添加到 list1 中的最大相邻数字,IOW 我将添加 6+2、7+3、8+4 和 9+5 以获得列表 [8;10;12;14]。列表 line[] 是一个虚拟变量。
这是我的第三次尝试:
运行此程序后,我希望 line = [9999;8;10;12;14] 而不是 line = [9999]。OTOH,fu 打印为 [999914]。
当我单步执行代码时,代码按预期执行,但没有任何变化;else 块中的累加器永远不会被修改。
我就是不懂这种语言。任何人都可以建议吗?
f# - 用 OcamlYacc / FsYacc 表示可选语法和重复
我正在尝试在词法分析/解析语法方面建立一些技能。我正在回顾我为 SQL 编写的一个简单的解析器,但我对它并不完全满意——似乎应该有一种更简单的方法来编写解析器。
SQL 让我大吃一惊,因为它有很多可选的标记和重复。例如:
相当于:
ON
and子句是可选的WHERE
,可以出现多次。我在解析器中处理这些如下:
换句话说,我通过将可选语法分解为单独的规则来处理可选语法,并使用递归处理重复。这行得通,但是它将解析分解为一堆小子例程,并且很难看出语法实际代表什么。
如果我可以在括号内指定可选语法并使用 * 或 + 重复,我认为编写起来会容易得多。这会将我的 whereClause 和 joinList 规则减少到以下内容:
我认为这种形式更容易阅读,并且更直观地表达了它试图捕捉的语法。不幸的是,我在 Ocaml 或 F# 文档中找不到任何支持此表示法或类似内容的内容。
在 OcamlYacc 或 FsYacc 中是否有一种简单的方法来表示具有可选或重复标记的语法?
java - OCaml 中的经典单例实现
我正在尝试在 OCaml 中概念化 Singleton 设计模式(qua Java),并且曾经看到实例提到函子或模块,我在 GoF 工作的概念证明中都没有使用它们。基本上,我想使用 OCaml 重新创建以下功能:
如果没有模块或函子,这可能吗?
ocaml - 有关于 OCaml Sdl 的文档吗?
我正在为此使用 OCaml SDL 开发一个小游戏。我没有找到任何关于它的文档,所以我有三个问题:
- 我想在windows下使用OCaml SDL,所以任何人都可以帮助我如何编译它,(我已经放弃并在虚拟PC上安装了linux)
- 有没有关于如何使用 OCaml SDL 的文档?
- 我正在使用一个 800x600 的窗口,我想在里面表示一些图形,例如那个像素表示背景,另一个表示岩石等等,那个(800x600)窗口的最佳表示是什么?作为一般情况,我使用的是 800 * 600 单元格的数组。