ml

    0热度

    2回答

    我正在写一个仿函数来实现标准ML中的集合。由于集合不允许重复,我不希望它被限制在平等类型,它的声明如下: signature SET = sig type t type 'a set val add : t -> t set -> t set ... end functor ListSet (EQ : sig type t val equal : t

    1热度

    1回答

    我实现套标ML。目前,它看起来像这样: signature SET = sig type t type 'a set ... val map : ('a -> t) -> 'a set -> t set end functor ListSetFn (EQ : sig type t val equal : t * t -> bool end)

    1热度

    2回答

    在ML语言 假设f(x,y,z)是一个函数。给出一个f的定义的例子,它会导致f的参数具有类型:a’ * a’ * int。 示例代码 fun f1 (x,y,z) = z<5 ; val f1 = fn : 'a * 'b * int -> bool 我如何改变这种VAL到a’ * a’ * int -> bool?

    1热度

    2回答

    ML族语言具有自动压缩功能 - 其中带有两个参数的函数调用被认为一次应用一个参数,f x y = (f x) y - 而其他语言族没有。 这仅仅是一次历史性的事故,还是有技术上的原因呢? 请注意,我是而不是问自动卷曲是净是好还是坏(这是一种主观判断)。我在问,它是否与ML家族语言的其他功能产生协同作用,从而使其更加自然地包含在这些语言中,如果是这样,这些功能是什么以及协同的性质是什么?或者相反,其

    2热度

    1回答

    我想编写一个类似的集合如下。 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

    0热度

    3回答

    我想编写一个样本函数,该函数接受任何类型的列表,并且仅当列表是一个实数列表时才返回头元素。 否则,函数应该给出错误信息 。 。 。 E r r o r:操作符和操作数不是。 。 。 datatype typeR = Real of real fun head(xs) = case xs of [] => raise List.Empty | Real (x::

    1热度

    1回答

    那些返回类型的区别是什么? val fn1 : int −> (int −> (int −> int)) val fn2: (int −> int) −> (int −> int) 这将创建类型的函数 int -> int -> int meaning int -> (int -> int) 是这样吗?没有支架,它们具有相同的含义!

    6热度

    2回答

    这更像是一个关于功能语言中类似ML系列的静态类型系统的软问题。我明白为什么你需要数据类型来描述像列表和树这样的数据结构,但是为数据类型中的命题逻辑定义“表达式”似乎只会带来一些便利,并不是必需的。例如 datatype arithmetic_exp = Constant of int | Neg of arithmetic_exp | Add of (ari

    1热度

    2回答

    我试着写在SML接收两个自然数N1,N2递归函数,并返回N1 N2 DIV的结果 数据类型自然被定义如下: datatype natural = zero | Succ of natural 我想按照新的数据类型来写它,或者换句话说,不要将它们转换为常规形式并将结果转换回来。 任何想法在这个定义中如何划分?

    1热度

    1回答

    SML函数图采用函数和列表,并将函数应用于列表元素。 函数图具有以下类型,它既是多态函数又是高阶函数。 fun map f [] = [] | map f (x::xs) = (f x)::(map f xs) val it = fn : (’a -> ’b) -> ’a list -> ’b list 收件另一功能MyMap中采用两个函数f和g和2-元件的元组的列表。 它在元组的第一个元素