首页 文章
  • 0 votes
     answers
     views

    设置另一组SML的子集

    我正在尝试实现另一组的set子集 . 但是我无法使用以下示例{{{},1}}和{{1,{}}}我已经尝试了所有能力 . 我的主要目的是设置在这种情况下返回true的set equality . 首先,我想让我的子集工作,然后实现集合相等 . datatype expression = SET of expression list | TUPLE of expression list | INT o...
  • 6 votes
     answers
     views

    SML列表相等奇数

    我有这段代码: fun foldr2(f, x::xs) = if xs = [] then x else f(x, foldr2(f, xs)) 带有类型签名 (''a * ''a -> ''a) * ''a list -> ''a 看起来非常简单,它需要一个适用于相等类型的函数和一个相等类型列表作为参数,因为 xs = [] 比较 . 但...
  • -2 votes
     answers
     views

    SML函数参数

    条件:当1.列表长于2.列表返回值:1当1.列表具有与2.相同数量的元素时 . 列表返回值:当1.列表短于w时为0 . list返回值:~1 ([1,2,4,5],[3,2,5]); 1 ([1,2],[1,5]); 0 ([5],[8,2,3]); ~1
  • 0 votes
     answers
     views

    sml in list参数函数递归

    列表和整数n . 该函数应该添加列表的第n个元素,并返回剩余的列表 . 例如 插入([5,6,7],2,9);输出:[5,9,6,7] n是2. 9是我添加第二行
  • 11 votes
     answers
     views

    SML:类型和数据类型之间的差异

    我是SML的新手,我想确保我真正了解基础知识 . SML中的类型和数据类型有什么区别,以及何时使用哪个?
  • 0 votes
     answers
     views

    在SML中简单实现flatten有问题

    我正在尝试实现flatten:'列表列表 - >'SML中的列表列表 . 我认为这应该是相对直接的更高阶函数 . 我的实施是 val flatten = List.reduce (op @) [] 但是我得到一个奇怪的错误消息:“append.sml:1.6-1.36警告:由于值限制而未通用的类型变量被实例化为虚拟类型(X1,X2,...)” . 因此,当我尝试压平一个int列表列表时,我...
  • 1 votes
     answers
     views

    返回给定列表中的字符串,单词之间有空格 - sml

    我必须编写一个SML函数,该函数返回一个句子,该句子由给定列表中的空格分隔 . 我必须使用foldl / foldr / map函数中的至少一个 . 这就是我写的: fun add_spaces nil = "" | add_spaces(x::xs) = foldr (fn (x,xs) => (add_spaces x)^" "^xs) x [...
  • 0 votes
     answers
     views

    SML / NJ在列表元组列表中搜索

    我对SML / NJ很新,我有点迷茫 . 我一直在尝试实现一个函数,它将搜索包含一些列表的元组列表,例如: val x = [(5, 2, [9 , 8, 7]), (3, 4, [6, 5, 0]), (11, 12, [8, 3, 1])] 我希望我的函数在目标编号和元组的元素3中的数字之间匹配时将元组的第一个元素添加到新列表中 . 我已经尝试了几种实现,但到目前为止它们都没有正常工作 . ...
  • 1 votes
     answers
     views

    检查参数是否为列表

    如果参数x是一个列表,是否有可能在SML中编写一个返回true的通用函数? fun isList(x) = ....... 预期用途: - isList(4); (* returns false *) - isList([1, 2, 3]); (* returns true *)
  • 0 votes
     answers
     views

    ML多态函数

    我试图在类型T上定义多态函数和,其中类型T可以是int,real或类型T的列表.int和real的情况的总和应该按预期工作 . 对于T列表的情况,它应该返回两个列表的相应元素的总和(列表的长度应该相同) . 例子: sum (INT 2, INT 3) = INT 5 sum (REAL 2.3, REAL 3.4) = REAL 5.7 sum(L [2, 3, 4], L [3, 4, 5...
  • 4 votes
     answers
     views

    (SML)将类型定义为函数并创建此类型的函数

    这里的第一个问题,只是想作为序言,我做了几个查询,虽然我发现了多个问题类似的措辞,我发现没有人提出或回答我的问题(据我所知) . 我在SML工作,因为我要留下一些细节,所以我可以自己解决这个问题 . 我在SML中定义了以下类型: - type Env = string -> int; 本质上,Env类型应该是一个允许从字符串映射到int的函数 - 这是一个简单的环境方案 . 创造一个能够做...
  • 1 votes
     answers
     views

    如何从另一个函数中捕获SML中的Exception?

    我相信我对在SML中捕获异常有一些基本的误解 . 我写了以下代码: fun my_g acc p = let val r = my_g acc in case p of Wildcard => acc | Variable x => if List.exists (fn y =&gt...
  • 1 votes
     answers
     views

    不到SML中的功能

    我在SML中遇到了两个令人困惑的问题,希望有人可以帮助我: 第一个是一个函数,它接受一个元素和一个列表,并决定该元素是否存在于列表中,这是我试图编写的代码: fun member (e,L) = foldl (fn(a,b) => if (e = b) then true else false) false L; 但我得到了bool *'列表 - > bool但我需要的是''a *'...
  • 3 votes
     answers
     views

    大型Int设置为sml

    我在 sml 中遇到以下问题:我想使用 IntListSet 签名创建一个集合,而不是 int 我想使用 large int . 有没有什么办法解决这一问题? 谢谢,等待你的回答 .
  • 1 votes
     answers
     views

    在SML中反转字符串的想法

    我对SML很新,并且有一些C / C背景 . 我一直在尝试编写一个名为reverseString的函数,它接收一个字符串来反转 . 非常直截了当 . 使用辅助函数,我能够编写一个函数来反转任何给定的字符串,并在结果中添加一个额外的字符 . 例如: - reverseString("hello"); val it = "ollehh" : string 任何...
  • 3 votes
     answers
     views

    SML - 通过String迭代

    我试图找出从文件中读取的句子是否有某种模式 . 到目前为止,我已经编写了逐行读取文件中所有句子的代码,并将这些句子放入数组中 . val infile = "c:/input.txt" ; fun readlist (infile : string) = let val ins = TextIO.openIn infile fun loop ins ...
  • 2 votes
     answers
     views

    SML - 使用map解压缩

    给出一个元组列表, [(1,2),(3,4),(5,6)] 我需要解压缩它看起来像这样 [[1,3,5],[2,4,6]] 解压缩需要 ('a * 'a) list -> 'a list list 类型 . 到目前为止,我有这个作为我的解压缩功能,但我的输入不正确,我不知道如何访问传递('a *'a) . val rec last = fn (h::nil) => ...
  • 2 votes
     answers
     views

    将Haskell代码转换为标准ML(重复组合)

    我正在编写一个代码,用于重复排列从k值中选择的n个元素 . 所以我得到的集合的基数应该有k ^ n个元素 . 在Haskell中,它相当容易 . 例如,人们可以写: import Control.Monad(replicateM)main = mapM_ print(replicateM 2 [1,2,3]) 然后你会得到一个列表: [1,1] [1,2] [1,3] [2,1] [2,2] ...
  • 3 votes
     answers
     views

    删除节点并将其添加到树中

    我有一个任务,我无法弄清楚该怎么做 . 我有一棵树,上面有他们的名字,出生和死亡年份 . 在这里思考家谱 . 我有一堆数据类型来处理年龄,名字,树本身等等,然后我有一堆人和一棵树 . 数据类型是: datatype year = Year of int | UnkYear | Irrelevant datatype name = Name of string | UnkName dat...
  • 4 votes
     answers
     views

    sml理解功能组合

    我想了解这两者之间的区别; val my_fun = length o List.filter (fn (item) => item = #"a") o String.explode 这个可以被调用(my_fun“name”将返回1)并且工作正常 . 我试图理解为什么跟随不起作用 length o (List.filter (fn (item) => item =...
  • 17 votes
     answers
     views

    SML中的Curried匿名函数

    我有以下功能,它的工作原理: (fn x => x * 2) 2; 但是这个不起作用: (fn x y => x + y ) 2 3; 谁能告诉我为什么?或者给我一些暗示让它发挥作用?
  • 0 votes
     answers
     views

    将SML转换为OCaml(语法问题)

    我是ocaml绝对初学者,我正在为类编写一些代码,我遇到了这样一个问题: datatype logicexpr = Var of string | Neg of logicexpr | And of logicexpr * logicexpr | Or of logicexpr * logicex...
  • 4 votes
     answers
     views

    有人使用SML或OCaml来构建真实的GUI吗?

    看了一些相关的OCaml图形projects后,似乎没有人用它来构建GUI . 为什么? 那些过时的图书馆有没有现代的替代品?
  • 39 votes
     answers
     views

    什么's the difference (if any) between Standard ML'的模块系统和OCaml模块系统?

    我的问题是,标准ML的模块系统和OCaml模块系统之间是否有任何区别? OCaml是否有所有对仿函数,归属等的支持...... SML有哪些?
  • 12 votes
     answers
     views

    为什么SML和OCaml被认为是ML的方言? ML的定义是什么?

    ML有很多方言,而SML和OCaml是最受欢迎的方言 . SML和OCaml之间存在许多差异,但它们都被视为ML的方言 . 所以, 为什么SML和OCaml被认为是ML的方言? 如何将语言视为ML的方言? 如果ML不是SML / OCaml,ML的定义是什么? 我猜ML是SML和OCaml的交集,但我找不到一些详细的定义 .
  • 2 votes
     answers
     views

    SML中'a and ''a有什么区别?

    例如: fun example (a:'a list) : list = a 将签名: 'a list -> 'a list 如果我以不同的方式定义但具有相同的内容,该怎么办 fun example (a : ''a list) : list = a 它的签名将是: ''a list -> ''a list 有什么不同?
  • 2 votes
     answers
     views

    符号是什么!在SML意味着什么?

    SML中的符号 ! 是什么意思? fun polysort(_,[]) = [] | polysort(_,[x]) = [x]! | polysort(less,xs) = let val (ys, zs) = split xs in merge(less,polysort(less,ys), polysort(less, zs)) end; 这会扭转它还是什么?我认为这与...
  • 1 votes
     answers
     views

    如何使用sml更改列表中的项目?

    我有一个元组列表,我想有一个函数,在这个列表中随机选择两个元组然后交换这两个元组 . 例如,如果我有一个列表为((0,0),(1,0),(1,1),(1,2),(2,2),(0,2)),那么,随机选择两个元组 . 如果选择(0,0)和(1,0),则该函数的返回结果为((1,0),(0,0),(1,1),(1,2),( 2,2),(0,2)) . 我是SML的新手,我在努力奋斗 . 有一个psudo...
  • 1 votes
     answers
     views

    在SML中int - > int - > int和(int * int) - > int有什么区别?

    我注意到有两种方法可以在SML中定义函数 . 例如,如果你使用add函数,这有以下两种方式: fun add x y = x+y; fun add(x,y) = x+y; 第一种方法创建函数类型: val add = fn : int -> int -> int 第二个创建函数类型: val add = fn : int * int -> int 这两种类型对于同一功能有...
  • 2 votes
     answers
     views

    如何实现sml的类型?

    我想写一个类似的集合如下 . signature COMPARABLE_SET= sig type 'a set val empty: 'a set val insert: 'a * 'a set -> 'a set val member: 'a * 'a set -> bool end 我需要将'集合类型中的元素限制为可比较:(有一个类型的函数: 'a * 'a -...

热门问题