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-元件的元組的列表。 它在元組的第一個元素