smlnj

    1熱度

    2回答

    我得到了這兩個問題對於這個功能: fun funion([(x:int list,y:bool list)]) = let fun join(nil,final) = final | join(x::xs,final) = join(xs,union(x,final)) | join(_,final) = final in join([(x,y)],(nil,nil))

    3熱度

    1回答

    假設我有一個SML簽名ALPHA。但我也有多個結構/函子alpha1,alpha2等,我希望與ALPHA一起使用。我的問題是,如果我有一個結構在這些模塊之外執行單元測試,我將如何單獨測試ALPHA簽名而不必指定我正在使用的結構? 爲了把事情的角度,這裏是一些代碼: signature ALPHA = sig val func1 val func2 end struct

    0熱度

    1回答

    作爲新SML,使用SML NJ我匿名函數行爲的功能識別功能的這種行爲: - fun test g= fn x=>x; val test : 'a -> 'b -> 'b = _fn - test 1 2; val it : int = 2 - test 1; val it : '1 -> '1 = _fn 是這樣嗎,該解釋器使用unit爲數據類型的輸入參數g ,如果在函數的調用中沒有

    1熱度

    1回答

    我必須編寫一個SML函數,返回由給定列表中的空格分隔的單詞組成的句子。我必須至少使用foldl/foldr/map函數中的一個。 這是我寫的: fun add_spaces nil = "" | add_spaces(x::xs) = foldr (fn (x,xs) => (add_spaces x)^" "^xs) x [xs]; add_spaces(["Testing","f

    1熱度

    2回答

    這是從教學的例子來說明CPS和尾遞歸: fun sum [] k = k 0 | sum (x::xs) k = sum xs (fn y=>k(x+y)); 我理解如何匿名函數fn y=>k(x+y)將正確總結輸入列表中的元素問題。 據我所知,匿名函數意味着一個帶有一個參數y的新函數,其中函數體調用原函數k,參數爲y+x。 如果我調用sum [1,2,3,4,5] (fn x=>x

    2熱度

    3回答

    我有一個功能: fn x => x 現在,參數x被應用到真實和INT(例如(X:真))。所不同的是,什麼是對兩個功能相同,即使他們似乎有效地做同樣的事情: 1. fn (x:int) => x; 2. fn (x:real) => x;

    2熱度

    1回答

    我正在嘗試在SML中編碼並面對以下列出的問題 我製作了N-Ary樹並且變量tr存儲了創建的樹的值。 val tr =node([leaf "x", node([leaf "y", leaf "x" , leaf "z"])]); 功能貓是什麼,我希望將打印所有的葉子節點的值。 但我得到一個非詳盡的搜索警告,它不起作用。 fun cat (node ([node t1 , node t2])) =

    0熱度

    2回答

    我寫了下面的代碼: fun remove_element(nil, elem) = raise Empty | remove_element(hd::tl, elem) = if(hd=elem) then tl else hd::remove_element(tl, elem); 但功能(從列表中移除的元素ELEM)適用於INT。我需要讓它適用於真實數字,但我無法做到。我已經嘗試了

    0熱度

    1回答

    我想從sml中的char列表中刪除空條目。 這是我的功能,但是當我嘗試調用它時,它不起作用並帶來致命錯誤。 fun no_spaces([]) = raise Empty | no_spaces(e::f) = if(e = #" ") then no_spaces(f) else e::no_spaces(f); no_spaces [#"a",#"a",#" ",#"d",#"

    2熱度

    1回答

    我正在用SML/NJ創建一個數獨求解器。我已經掌握了實際操作輸入數據的所有功能(檢查行的合法性,強制空白空間等),但是我在回溯部分遇到問題。 我碰到過this question但我很困惑如何在SML中實現它。 。注意,板被輸入作爲表示每一行,0中的數字對於一個未知點 [[0,0,0, 2,6,0, 7,0,1], [6,8,0, 0,7,0, 0,9,0], [1,9,0, 0,0,4, 5,