问题标签 [sml]
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.
functional-programming - ML 新手:如何存储 a* a* a* 类型的返回值
我有一个返回 int*int 的程序
(示例用于说明目的): fun program(a,b) = (1,2)
我想做一些事情:
fun program(a,b)
if a = 0 then (1,2)
else
val x,y = program(a-1,b)
return (x-1, y)
基本上,我想操作返回的元组,然后返回它的修改。
谢谢
sml - 使用 SML 破解凯撒密码
我应该破解凯撒密码。我必须声明一个函数crack : int * int -> int
,以便如果(k, c)
是类型int
,k
解密文本和c
加密文本在哪里,调用将返回crack(k, c)
密钥 (mod 10) n
,这是获取. 一个例子是调用将返回 4。c
k
crack(20458790, 64892134)
如果c
不是 的正确编码k
,则该函数不必实际工作。
我希望我在这里足够清楚。我了解这里的实际分配(我有 k 和 c,我需要 n),但我不知道如何在我的代码中显示它。
sml - 如何在 SML 中操作元组列表?
我是 SML 的新手,我想知道如何在元组列表中获取元素。例如,在列表中[("abc", 4), ("def", 6)]
,您如何提取"abc"
?我试过了
但我不断收到“未解决的弹性记录”。有什么建议么?
sml - SML 和教堂数字
我有一个任务,我需要使用以下数据类型在 SML 中实现教堂数字:datatype 'a Church = C of ('a -'a) * 'a -> 'a
我必须编写函数 create :int -> 'a Church 和函数 ChurchToint 到目前为止,我有以下代码:
我知道我很接近。您能帮我正确实施吗?谢谢
functional-programming - SML 中的组合函数
嘿,我对 SML 和编程非常陌生,我想编写一个在列表中组合的函数,例如 [x1,x2,x3,x4,...] = [(x1,x2),(x3,x4) ,...] 非常感谢任何提示或帮助我朝着正确的方向前进。
sml - 如何获得教堂数字的前身
我正在练习 SML,我正在做一个小任务,我们必须实现教堂数字,定义为:
示例值
我已经实现了以下功能:
并SUC
返回 Church 数字的后继。
现在我必须实现该功能
它返回 (predecessor, current numeric) 的元组。我不允许使用churchToInt
,我应该直接使用 Church 数字。显然,这可以通过传递特定参数在一行中解决。
我一直在考虑SUC
一遍又一遍地使用,直到我们找到正确的数字,但我无法比较 2 个 Church 数字。我完全坚持这一点。
equality - 在 SML 中检查列表中的相等性
我想编写一个函数来检查 SML 中列表的相等性,例如:[1,2,3]=[1,2,3]; val it = true : bool
因此,我不想写下整个事情,而是想创建一个接受两个预定义列表并比较它们的函数,这样如果 list01 = [1,2,3] 和 list09 = [1,2,3] 那么 fun equal (list01,list09); 将返回 -val it = true : bool;
提前感谢任何想法/提示和帮助:)
tree - 删除/删除 SML 中的子树
嘿,我想编写一个函数 delete 给定一棵树,我可以删除树中的一个节点,所以它应该返回原始树减去该节点的节点和子树。每个提示都有帮助,并且提前感谢:)
list - 从树中返回元素列表的 SML 函数引发异常
我有一个 SML 任务,其中一个问题是实现一个功能
到目前为止,我有以下内容:
基本上,findAll
接受一个布尔函数并以异常的形式返回满足该函数的所有节点。我知道为什么我的代码不起作用,因为在原始(提高答案)中会有一个(提高答案),但无论哪种方式,这都不会编译。我想知道我应该怎么做才能解决这个问题。我不能调用获取所有元素的辅助函数,然后只调用异常,但是我应该使用携带值的异常。我也应该能够按顺序返回所有元素。
tree - 删除和添加节点到树
我有一个任务,我不知道该怎么做。我有一棵人的树,上面有他们的名字、出生和死亡年份。在这里想想家谱。我有一堆数据类型来处理年龄、姓名、树本身等,然后我有一堆人和一棵树。
数据类型是:
首先,我需要能够从这个位置删除某人以及它“下”的所有内容 - 因此删除“妈妈”将删除妈妈和她的父母、祖父母等。如果在该位置没有人被调用,该函数应该返回树. 它应该是这样的: remove : Tree * parents list -> Tree 并且调用是 remove(t, pos)
这就是我所拥有的,但它并不完全正确。有人告诉我,我可以用 4 行来完成。
我有一个想法:
但这是不正确的。我该怎么办?
我还应该能够将人 p 插入到位置 pos 的树 t 中 - 如果该位置不存在,它应该只返回树。插入:树*父母列表*人->树
我只是无法解决这个问题,我希望有人能够帮助我。我希望我已经足够清楚了(我知道它很长)。