问题标签 [polyml]

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 投票
2 回答
215 浏览

function - PolyML 函数和类型

[...] 一对函数tofun : int -> ('a -> 'a)fromfun : ('a -> 'a) -> int这样的(fromfun o tofun) n函数,n每个n : int.

谁能向我解释这实际上要求什么?我正在寻找对此的更多解释,而不是对此的实际解决方案。

0 投票
2 回答
180 浏览

sml - 如何定义将多态函数应用于特定类型的高阶函数

如果我定义

然后自然id有类型'a -> 'a

当然,id 0计算结果为0,这很有意义。

既然这很有意义,我应该可以用一个函数来封装它:

希望applyToZero有类型('a -> 'a) -> intapplyToZero id评估为0

但是当我尝试applyToZero如上所述定义时,SML/NJ 给出了一个奇怪的错误消息,它开始:

这几乎看起来像是编译器本身的一个错误。很奇怪,但可能。

但是 PolyML 也不喜欢它(尽管它的错误消息不那么奇怪):

以下确实有效:

与推断类型('a -> 'a) -> int。这表明创建这种类型的高阶函数并非不可能。

为什么 SML 不接受我的定义applyToZero?是否有任何解决方法可以让我定义它以使其类型为('a -> 'a) -> int

动机:在我试图解决这个问题的难题时,我能够定义一个tofun类型的函数int -> 'a -> 'a和另一个fromfun具有所需属性的函数,该属性fromfun (tofun n) = n适用于所有整数n。但是,我工作的推断类型fromfun('int -> 'int) -> 'int). 我尝试添加类型注释以便 SML 将其视为('a -> 'a) -> int失败的所有尝试。我不想显示我的定义,fromfun因为提出该问题的人可能仍在研究该难题,但applyToZero触发的定义完全相同的错误消息。

0 投票
1 回答
144 浏览

functional-programming - 标准 ML 中的类型函数: ('a -> ('b -> 'c)) -> ('a -> 'b) -> ('a -> 'c)

在为我的编程语言考试复习时,标准 ML 部分有一些类型推断问题,我可以通过在脑海中进行类型推断来完成大部分问题,而且我很擅长,但是有一个问题让我难过。

我必须编写一个类型的函数:

('a -> ('b -> 'c)) -> ('a -> 'b) -> ('a -> 'c)

因此,在我的脑海中,我应该有一个带有两个参数的函数,即函数 f 和 g。两者都需要一个参数 x,但我不能将该参数 x 添加到这个函数中,因为它只需要两个参数,所以我只能使用 o 运算符创建这个函数,用于管道函数。

所以 f 接受一个参数并返回一个函数 g 接受一个参数并返回一个值。然后整个函数接受一个值并返回一个值。

我不确定如何仅使用 o 运算符来应用 f 和 g 来暗示这些规则。

任何帮助将不胜感激:) 谢谢,Ciaran

0 投票
1 回答
235 浏览

constants - 在 SML 中,为什么不允许在模式中使用实常数?

不接受此代码;

为什么是这样?

0 投票
1 回答
142 浏览

polyml - 如何从`polyc`中获取堆栈跟踪?

我在 Mac OS 上使用 PolyML 编译器 5.6 版本。我正在编译并运行一些引发异常(Fail "undefined")的代码。我希望我编译的应用程序在引发异常时退出堆栈跟踪;但它却默默地退出。

如何让 PolyML 显示堆栈跟踪或至少显示引发异常的行号?

0 投票
2 回答
406 浏览

emacs - run-sml 在 emacs sml 模式下不起作用

我想在 Fedora 上的 emacs 中使用 sml-mode。我的~/.emacs文件包含

该目录包含 git 克隆的 sml 模式文件。

我编辑sml-mode.el

这确实启动了 PolyML,我想使用的版本。

当我键入M-x run-sml运行劣质 SML 读取评估打印循环时,我得到

在小缓冲区中。我应该在这里做些什么更好?

0 投票
1 回答
522 浏览

sml - 从多个文件编译 SML 项目

我有一个包含许多文件的项目,我希望它可以与最流行的编译器一起使用。

不幸的是,PolyML 和 SML/NJ 需要use语句,而 MosML 还需要使用 显式加载基础库结构load,poly 或 sml 都无法识别。

最重要的是,MLton 和 MLKit 需要一个完全不同的 .mlb 文件,只是列出文件名,并且还需要显式导入基础库,这与 MosML 以不同的方式完成:

是否有一些标准的通用“包含此文件”命令,如果不存在,是否有其他方法可以让所有编译器从一个入口点文件中读取?

PS不介意有人对编译器差异进行小幅咆哮。我总是对人们的想法感兴趣,并且没有太多可用的信息:-)

0 投票
1 回答
240 浏览

sml - 如何通过终端在 mac 上运行 polyml?

所以我在我的 mac 上安装了最新版本的 polyml。如何运行编译器以开始使用它?对于 sml,它非常简单,我只需输入“sml”,它就开始工作了吗?

0 投票
1 回答
53 浏览

sml - Poly/ML Exception Cast "toAddress" raised

Using Poly/ML, I wanted to write a function to construct an n*n identity matrix using Array of Arrays.

I wrote:

and it compiled successfully, giving

But when I called idmatrix

for a test, the output of the compiler was

Can anybody explain why the exception was raised, please?

Thank you very much!

0 投票
1 回答
1157 浏览

ml - 无法将 char 与字符串 ML 连接

您好,我正在尝试在 ML 中执行 incFirst 函数。该函数执行以下操作:incFirst "bad" = "cad" incFirst "shin" = "thin"。这就是我尝试做的事情,fun incFirst s = chr(ord s + 1) ^ substring(s, 1, size s -1); 我收到以下错误:无法将字符串(In Basis)与 char(In Basis)(不同类型的构造函数)在 chr (ord s + 1) ^ substring (s, 1, . .. - ...) 异常 - 引发“静态错误”失败如果“^”运算符不起作用,我知道如何将字符与字符串连接起来吗?