标签: sml

适用于Windows或Linux或Mac的ML IDE和编译器

我必须在ML中编写一些代码,这是我第一次使用该语言.标准ML是否有任何开发环境?(最好在Windows下).我尝试使用googling(和stackOverFlowing!),但我发现的只是Linux的简单编译器(最多使用交互式控制台),但没有IDE或Eclipse/NetBeans插件.有什么建议 ?

ide compiler-construction programming-languages ml sml

27
推荐指数
5
解决办法
2万
查看次数

利用Hindley Milner型推断在SML中类型定义的增长

曾经有人在SML中向我展示了一个小技巧,他们在他们的REPL中写出了大约3或4个函数,最后一个值的结果类型非常长(就像许多页面滚动一样长).

有谁知道什么代码生成这么长的类型,或者是否有这种行为的名称?

functional-programming type-inference ml sml hindley-milner

27
推荐指数
1
解决办法
3267
查看次数

标准ML中的行注释

我正在学习ML,用SML/NJ方言.我想弄清楚的是,是否有一个行注释运算符.我找到了块注释运算符,(*...*),但我真的错过了行注释.

建议?或者我只是坚持使用块评论?

sml smlnj

23
推荐指数
1
解决办法
2万
查看次数

功能广度优先搜索

功能深度优先搜索在有向无环图中很可爱.

然而,在带循环的图中,我们如何避免无限递归?在程序语言中,我会在我点击它时标记节点,但是让我说我​​不能这样做.

访问节点列表是可能的,但速度很慢,因为使用一个会导致在重复之前对该列表进行线性搜索.比这里的列表更好的数据结构显然会有所帮助,但这不是游戏的目的,因为我在ML中编码 - 列表是王道,还有其他任何我必须自己写的东西.

这个问题有巧妙的方法吗?或者我是否必须处理访问列表或上帝禁止,可变状态?

python ocaml haskell functional-programming sml

23
推荐指数
3
解决办法
3933
查看次数

(ML)模块vs(Haskell)类型类

根据Harper(https://existentialtype.wordpress.com/2011/04/16/modules-matter-most/),似乎Type Classes根本没有提供与Modules提供的相同级别的抽象,而我正在拥有很难确切地弄清楚原因.并且在该链接中没有示例,因此我很难看到关键差异.还有其他关于如何在模块和类型类之间进行翻译的论文(http://www.cse.unsw.edu.au/~chak/papers/modules-classes.pdf),但这对于从程序员的角度来看实现(它只是说没有人可以做的事情,另一个人无法模仿).

具体来说,在第一个链接中:

首先,他们坚持认为类型可以完全以一种方式实现类型类.例如,根据类型类的哲学,整数可以以一种方式(通常的顺序)排序,但显然有许多有趣的排序(例如,通过可分性).第二个问题是它们混淆了两个不同的问题:指定类型如何实现类型类,以及指定在类型推断期间何时应该使用这样的规范.

我也不明白.一个类型可以在ML中以多种方式实现类型类?如果不创建新类型,您将如何通过示例按可分性排序整数?在Haskell中,您必须执行诸如使用数据之类的操作,并instance Ord提供替代排序.

第二个,不是两个在Haskell中是截然不同的吗?指定"何时应在类型推断期间使用此类规范"可以通过以下方式完成:

blah :: BlahType b => ...
Run Code Online (Sandbox Code Playgroud)

其中BlahType是在类型推断期间使用的类而不是实现类.然而,"类型如何实现类型类"是使用完成的instance.

有人可以解释链接真正想说的内容吗?我只是不太明白为什么模块比Type Classes更少限制.

haskell ml sml

22
推荐指数
1
解决办法
3290
查看次数

如何在OCaml的顶层加载ml文件,就像在SML/NJ中`use mine.sml`一样?

SMLrepl,你可以只输入use whatever.sml和里面所有的东西加载.smlrepl.

我怎么能在OCaml中做到这一点?

ocaml functional-programming sml

21
推荐指数
1
解决办法
1万
查看次数

类型推断的限制是什么?

类型推断的限制是什么?哪种类型的系统没有通用的推理算法?

type-systems type-inference sml hindley-milner

20
推荐指数
2
解决办法
1380
查看次数

如果有的话,您需要添加到依赖类型系统来获取模块系统吗?

依赖类型系统似乎支持ML模块系统的一些用途.你从模块系统中获得了什么,你没有从依赖记录中获得?

模块〜记录

签名〜记录类型

functor~记录功能

具有抽象类型组件的模块〜具有类型字段的依赖记录

我对它作为模块系统的工作情况感兴趣,以及是否以及如何集成应用程序仿函数和mixin等功能.

ocaml types module sml

20
推荐指数
1
解决办法
314
查看次数

如何"修复"SML/NJ交互系统以使用箭头键

我在使用SML/NJ交互系统时遇到了一些麻烦,即当我尝试使用我的箭头键时(左或右在我输入的表达式中进行校正,最多重复最后一个表达式),我的终端打印代码.(例如^[[A,^[[D左起等).虽然我仍然可以使用该系统,但它使它非常繁琐.

我在Control.Compiler中环顾四周,有什么我想念的吗?无论它的价值如何,我都在使用Mac终端.

谢谢^ _ ^

sml smlnj

19
推荐指数
2
解决办法
4114
查看次数

SML中的Curried匿名函数

我有以下功能,它的工作原理:

(fn x => x * 2) 2; 
Run Code Online (Sandbox Code Playgroud)

但是这个不起作用:

(fn x y => x + y ) 2 3;
Run Code Online (Sandbox Code Playgroud)

谁能告诉我为什么?或者给我一些暗示让它发挥作用?

sml smlnj

19
推荐指数
1
解决办法
1万
查看次数