首页 文章
  • 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 =...
  • 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有哪些?
  • 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 -...
  • 93 votes
     answers
     views
  • 25 votes
     answers
     views

    推断类型似乎检测到无限循环,但实际发生了什么?

    在Andrew Koenig的An anecdote about ML type inference中,作者使用merge sort的实现作为ML的学习练习,很高兴找到“不正确”的类型推断 . 令我惊讶的是,编译器报告了一种'list - > int列表换句话说,这个sort函数接受任何类型的列表并返回一个整数列表 . 那是不可能的 . 输出必须是输入的排列;它怎么可能有不同的类型?读者...
  • 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...

热门问题