polyml

    -4热度

    1回答

    所以我在我的Mac上安装了最新版本的polyml。我如何运行编译器开始使用它? sml它太简单了,我只需键入'sml'并开始工作?

    4热度

    1回答

    我已经从“PolyML5.6-64bit.msi”安装程序安装了Poly/ML;我可以通过在开始菜单中单击来启动REPL;但我不知道如何从它访问任何库?我尝试过做use "something",但它会导致这样的错误如下: > use "Math"; Exception- Io {cause = SysErr ("No such file or directory", SOME

    2热度

    2回答

    如何引用从函子的结果派生类型的结构中使用的签名中的类型。下面是使用聚解释一个例子: > signature Res = sig type f end; signature Res = sig type f end > functor F (A: sig type t end) : Res = struct datatype f = None | Some end; functor F (A:

    3热度

    2回答

    [...]一对函数tofun : int -> ('a -> 'a)和fromfun : ('a -> 'a) -> int使得(fromfun o tofun) n计算结果为n每n : int。 任何人都能向我解释这实际上是什么要求?我正在寻找更多的解释,而不是实际的解决方案。

    0热度

    1回答

    我在Mac OS上使用PolyML编译器5.6版本。我正在编译并运行一些引发异常的代码(Fail "undefined")。我期待我的编译应用程序在引发异常时以堆栈跟踪退出;但是它会静静地退出。 我该如何让PolyML显示堆栈轨迹或至少是引发异常的行号?

    1热度

    2回答

    如果我定义 fun id x = x 高阶函数,那么自然id已键入'a -> 'a 当然,id 0计算结果为0,使完美的感觉。 由于这是非常合情合理的,我应该能够通过一个函数来封装它: fun applyToZero (f: 'a -> 'a) = f 0 希望能applyToZero将有类型('a -> 'a) -> int和applyToZero id将评估为0 但是,当我尝试如上定义

    1热度

    1回答

    我想在结构中声明一个中缀经营者以供在结构外使用。但是,即使结构已经打开,我似乎也无法让结构之外的“外力”得到承认。以下是使用Poly/ML的示例: > structure A = struct infix 6 ++ fun a ++ b = a + b end; structure A: sig val ++: int * int -> int end > 1 A.++ 2; poly: :

    0热度

    1回答

    类型的函数:('a - >('b - >'c)) - >('a - >'b) - >('a - >'c)在修改我的程序语言考试中,Standard ML部分有几个类型推理问题,我可以通过在头脑中进行类型推理来完成其中的大部分类型推理问题,而且我非常擅长,但是有一个问题让我难以理解。 我必须写类型的函数: ( '一个 - >(' B - > 'C)) - >(' 一个 - > 'B) - >(' 一

    0热度

    1回答

    我想在Fedora上的emacs中使用sml-mode。我~/.emacs文件包含 (add-to-list 'load-path "/home/gbuday/prooftheory/sml-mode") (autoload 'sml-mode "sml-mode" "Major mode for editing SML." t) (autoload 'run-sml "sml-proc" "

    5热度

    1回答

    我想编译一个源代码的字符串并使用Poly/ML打印分析树。下面的代码编译,但分析树是空的: fun main() = let val stream = TextIO.openString "let val a = \"abc\"; val b = \"def\"; val c = a^b in print c end"; val _ = PolyML.compil