ml

    3熱度

    1回答

    有什麼方法可以更新綁定在全局範圍內的變量在一個let-in-end表達式中? 例如,如果我有一個全局變量: val playerScore = 0; ,然後將功能: fun hit (option:int) = if option = 2 then printStay(playerScore, dealerScore) else let

    0熱度

    1回答

    我試圖運行一個函數subst(tr,v1,v2),它返回一個新的ntree,其中v1的所有值都被v2替換爲輸出樹。 datatype 'a ntree = leaf of 'a | node of 'a ntree list; fun map(f, []) = [] | map(f,x::t)=f(x) :: map(f,t); fun subst(leaf(d), v1, v2) = i

    1熱度

    1回答

    我在一篇關於Poly/ML堆大小的文章中閱讀了以下單詞。但是我不明白這個堆的大小是如何調整的?任何人都可以更詳細地解釋它嗎? 在每個主要GC(垃圾收集)結束時,調用adjustHeapSize() 方法。此方法動態改變堆大小,因此 存在特定數量的可用空間。也就是說, 假設成熟空間緊接在GC之後包含1MB活數據,則adjustHeapSize()將成熟空間大小改變爲K + 1MB,其中K是預先計算的

    1熱度

    2回答

    我有一個函數foo需要一個字符。我想將該函數映射到字符串中的每個字符上。 fun foo (ch : char) = ch; fun bar (str : string) = map foo [(str)]; 顯然,這是行不通的,由於字符串被應用到期望一個字符的功能。所以我嘗試使用String.explode(str)將其分解成一個char數組,然後我似乎無法映射數組中的

    1熱度

    1回答

    如何刪除列表中的最後一個元素標準ML? 我有一個列表定義爲: val list = [1, 4, 6, 8, 9] ,我想刪除最後一個元素,並有在val list列表。

    4熱度

    1回答

    我有一個集合和映射作爲不平衡二叉樹的實現。由於集和地圖是如此相似,其實我只寫了一個實現了從無到有的地圖,然後以一般實現集作爲地圖從鍵單位: signature EQ = sig type t; val eq : t * t -> bool; end; signature ORD = sig include EQ; val lt : t * t

    1熱度

    2回答

    說我有一個數據類型,它看起來像 datatype IntLt = ltObj of int * int * (int * int -> bool) 也就是說,這個對象是一對整數與他們相應的操作。有沒有辦法在創建ltObj時自動調用帶有兩個參數的函數,並在結果爲false時引發異常? 也就是說,我正在尋找數據類型構造的構造函數類型過程,類似於Python中的__init__或C/C++/Java

    5熱度

    1回答

    這些函數式語言編譯器可以分別將函數式語言編譯爲C代碼。 Google的NaCl SDK可以編譯C.通過首先編譯其中一個編譯器並通過谷歌的Native Client SDK運行結果來創建Native Client應用程序是否合理? 任何人都這樣做或具有關於可能性,陷阱,侷限性的具體信息? 非常感謝!

    5熱度

    2回答

    有沒有一種方法可以使用SML Basis庫在特定位置打開文件?也就是說,使用操作系統調用來更改位置,而不是掃描文件並丟棄數據。

    1熱度

    1回答

    基本上這個函數將一個參數作爲一個字符,數字並檢查它是否在List中? let rec (member: a -> List a -> Bool) x = | [] -> False | Cons y ys -> if x == y then True else member x ys ;; 我得到了解決方案,但它似乎太模糊。 任何人都可以告訴我如何在這種特殊情況下使用Cons運算符? 感