sml相关内容

SML类型推断提示

我是SML新手,我正在尝试练习SML类型引用。我正在尝试推断以下类型: a)fun add42 x =x+42 b)fun comp F G = let fun C x = G(F(x)) in C end c)fun compA42 x = comp add42 x d)val foo = compA42 add42 e)fun compCompA42 x = comp compA42 x ..
发布时间:2022-09-22 19:02:08 其他开发

修复OCaml中的数据类型

如何使用OCaml或SML表示来自Haskell的以下数据类型? newtype Fix f = In (f (Fix f)) 推荐答案 我已经answered this question on the mailing-list了(我必须说,您在两个不同的地方问这个问题没有几天的好时间,我有点不高兴,因为这可能会引起重复的努力),但是让我们在这里重复一下。 这里有一个困难,因为O ..
发布时间:2022-03-04 15:12:08 其他开发

number_in_month 练习(SML 列表迭代)

我需要获取日期列表和月份列表,并计算列出的任何月份中的日期总数.因此返回一个整数 我有一个先前定义的 number_in_month 函数,它接收一个列表日期和一个月,并返回该日期的数量月.它已经过测试并且可以正常工作.我以此为基础后一个功能.我已经跟踪了很多 number_in_months 函数多次,我似乎无法找出问题所在,但它根本没有给出正确的答案 fun number_in_mon ..
发布时间:2022-01-24 12:01:28 其他开发

标准 ML 中的部分总和?

我是函数式编程的新手,我的任务是计算列表的部分总和.例如.- psum [1,1,1,1,1];val it = [1,2,3,4,5] : int 列表 到目前为止,这是我的代码.但是在函数 psum2[L] 中,我不知道如何遍历每个值并将它们相加,所以我只打印列表. fun psum2(L) : int list =如果 L=nil 则 []否则 L;有趣的 pSum(L) : int ..
发布时间:2022-01-09 16:26:45 其他开发

为什么我不能在标准 ML 中比较实数?

为什么 1.0 = 2.0 不起作用?real 不是相等类型吗? 它给出了错误: 错误:运算符和操作数不一致[需要相等类型]运算符域:''Z * ''Z操作数:实数 * 实数表达:1.0 = 2.0 为什么模式中的实数不能这样工作? 趣闻 0.0 = 1.0|事实 x = x * 事实 (x - 1.0) 它给出了错误: 错误:语法错误:插入 EQUALOP 解决方案 为什 ..
发布时间:2022-01-09 10:25:19 其他开发

Sml 折叠一棵树

到目前为止,我正在尝试使用 fold 函数来获取树的乘积,这就是我所拥有的.我对如何在遍历树时使用折叠方法感到困惑 datatype 'a bin_tree = 'a 的叶子|'a bin_tree * 'a bin_tree 的节点有趣的树折 g z 空 = z|treefold g z (Node (l, x, r)) = g(x, g(treefold g z l, treefold g ..
发布时间:2022-01-05 18:28:33 其他开发

如果 SML.NET 有函子,为什么 F# 不能?

这个问题开始于 我翻译的“ML for the Working Programmer"(WorldCat) 由 LC PAULSON 到 F# 使用函子作为示例. 最终希望翻译“纯函数数据结构"(WorldCat)作者 Chris Okasaki,使用函子. 阅读“类别类型和结构 - 类别理论简介供计算机科学家使用"(WorldCat),作者:Andrea Asperti 和 Giuse ..
发布时间:2022-01-05 10:10:47 其他开发

解释模式匹配与开关

我一直试图向几个人解释 switch 语句和模式匹配 (F#) 之间的区别,但我真的无法很好地解释它......大多数时候他们只是看着我说“那你为什么不直接使用 if..then..else". 你会如何向他们解释? 编辑!感谢大家的精彩答案,我真的希望我可以标记多个正确的答案. 解决方案 我以前是“那些人"中的一员,我不知道有没有一种简洁的方式来总结为什么模式匹配是如此美味. ..
发布时间:2022-01-05 09:49:20 其他开发

标准 ML 函子示例

Standard ML 中的Functor 与模块系统相关,可以根据其他结构生成结构.下面给出了一个为各种类型的列表生成列表组合子的函子的例子,但这个例子有一个问题: 各种类型的列表都有优点——例如,惰性列表可以无限长,连接列表有一个 O(1) 连接运算符.但是当所有这些列表类型都符合相同的签名时,函子只能使用它们的通用属性. 因此,我的问题是:当函子有用并且各种生成的结构不会失去它们 ..
发布时间:2022-01-02 13:48:40 其他开发

树上的尾递归

我有一个数据结构, datatype 'a tree = Leaf |'a tree * 'a * 'a tree的分支 我想写一个函数,以某种顺序遍历这棵树.它做什么并不重要,所以它可能是一个 treefold : ('a * 'b -> 'b) ->'b ->'一棵树 ->'b.我可以这样写这个函数: 有趣的 treefold f acc1 Leaf = acc1|treefold f ..
发布时间:2022-01-02 13:38:11 其他开发

我可以要求递归的物理类比或隐喻吗?

我突然进入了递归语言课程 (sml) 并且递归对我来说在物理上还不合理.我在想,一块方形瓷砖有时是整数乘法的模型或隐喻,或者 Cuisenaire Rods 是加法和减法的模型或类似物.有没有人有这样的模型可以分享? 解决方案 想象一下你是一个现实生活中的魔术师,并且可以复制你自己.你创造你的替身离目标更近了一步,并给他(或她)同样的命令. 你的替身对他的副本做同样的事情.他也是个魔 ..
发布时间:2021-12-16 08:46:33 其他开发

关于 SML 类型检查和推理的问题

首先,由于问题与学校项目有某种关系,我认为发布我的代码不合适.另外,正如我稍后解释的那样,我只有相关代码的修改版本. 我自己解释一下.我应该使用优先级队列来实现 Dijkstra 算法的一个版本.我认为这样做的一种简单的功能方法是定义一个带有输入队列和目标节点的 dijkstra 函数以及一个帮助函数来将与刚刚出队的列表元素相邻的节点入队.不幸的是,辅助函数没有进行类型检查 - 未解析的 F ..
发布时间:2021-09-11 19:57:32 其他开发

手动 SML 类型推断

你好,我正在为我的期末考试做准备,考试中总是有 ml 类型推断.即我们被要求写这样一个函数的类型: 好玩 呃 x y z = x z (y z);val ugh = fn : ('a -> 'b -> 'c) ->('a -> 'b) ->'a ->'C 或 好玩 x y z = z (x y ) (y + 1);val doh = fn : (int -> 'a) ->内部 ->('a - ..
发布时间:2021-09-11 19:56:37 其他开发

通过索引变量访问 SML 元组

问题很简单. 如何在 SML 中使用索引变量访问元组? val index = 5;val tuple1 = (1,2,3,4,5,6,7,8,9,10);val 正确值 = #index tuple1 ?? 我希望有人能够提供帮助.提前致谢! 解决方案 不存在接受整数值和元组并从元组中提取该元素的函数.当然有 #1, #2, ... 函数,但这些函数不接受整数参数.也就是说,“ ..
发布时间:2021-09-10 20:09:11 其他开发

从 SML 中的树创建列表时出现语法错误

我有以下两种数据类型: datatype Leaf = Slist of string list |真实的真实|零;数据类型 '一棵树 = 空 |叶子节点*'一棵树*'一棵树*'一棵树; 下面的代码遍历所有长度为一/二的树,并形成叶子中值的列表. fun list12(Empty:'a tree) = nil|list12(Node(leaf Leaf1, 'a tree a1, 'a tr ..
发布时间:2021-09-09 19:39:43 其他开发

标准机器学习语法

我是标准机器学习的新手,正在尝试编写以下代码 有趣的 whilestat 测试 stmt1 =(fn x => if (test x) then (stmt1 x;whilestat test stmt1 ) else (x) ); 问题是它给了我以下错误 w.sml:21.6-22.82 错误:子句右侧不符合函数结果类型[循环性]表达式:('Z -> 'Y) ->'Z ->'Z结果类型: ..
发布时间:2021-09-03 20:44:40 其他开发

初学者 SML 语法

我对 SML 很陌生.我目前正在开展一个项目,该项目正在检查手机是否平衡. 我的数据类型 mobile 定义如下: datatype mobile = 整数对象|手机线*手机 然后我有一个重量功能来检查手机的重量: 有趣的重量(物体w)= w|重量(线(l,r))=重量l+重量r 我现在正在尝试检查手机是否平衡.我有以下内容: fun balance (Object w) = tr ..
发布时间:2021-09-03 20:34:10 其他开发

SML:使用 abstype 和使用签名来隐藏结构的实现有什么区别?

过去我在 SML 方面做过一些工作,但现在我开始接触更有趣的部分. 使用 abstype...with...end 构造,我可以做一些事情,但隐藏它们的实现细节.我还可以创建我想要制作的东西的签名,并使用 :> 运算符来创建一个遵守该签名的结构,以隐藏实现细节. 签名/结构不只是 abstype 的更通用版本吗?我可以用 abstypes 做什么,而我不能用签名/结构来做?我为什么要使 ..
发布时间:2021-08-31 19:20:46 其他开发

Python 范围规则是否符合词法范围的定义?

根据我的编程语言课,在一个使用词法范围 的语言 函数体在环境中被评估定义的是函数,而不是调用函数的环境. 例如,SML 遵循以下行为: val x = 1有趣的我的乐趣 () =X值 x = 10val res = myfun() (* res 是 1 因为当定义 myfun 时 x = 1 *) 另一方面,Python 不遵循这种行为: x = 1def myfun():返回 x ..
发布时间:2021-07-16 21:25:24 Python

在 SML 中对树进行计数后修改元组

我正在研究一个问题,我必须遍历一棵树并计算每个节点有多少个子节点. 这有两部分,数据类型和函数本身. 数据类型 该数据类型要求内部节点存储任何类型的值,并且具有 1-3 个子节点.叶子本身存储一个实数或一个字符串列表. datatype Leaf = Slist of string list |真实的真实;数据类型树 = 空|叶子的叶子|叶节点 * '一棵树|叶节点*'一棵树* ..
发布时间:2021-07-05 19:26:49 其他开发