smlnj

    0熱度

    1回答

    以這樣的方式,我可以做這個事如同在SML我怎麼能界定「嵌套結構」: structure Why_Does = struct val seriously = "..." Structure This_Not_Work = struct val hmm = "this confuses me" end end 然後用W

    2熱度

    2回答

    我有以下公式 fun foo 0 = [0] | foo num = let val l = (num mod 2)::foo(num div 2) in rev l end; 這是應該從十進制轉換爲binary.It具有以下簽名 val foo = fn : int -> int list 我不知道究竟哪裏我得到錯誤的東西,因爲我得到不正確的結果。可

    1熱度

    1回答

    我一問SMLNJ filter: ('a -> bool) * 'a list -> 'a list ,需要一個函數f和一個列表L作爲參數,並返回到編寫過濾功能一個新的列表 包含L的元素l,使得f(1)爲真。 例如: filter(fn(x => x mod 3 = 0), [1,2,3,4,5,6,7,8,9,10]) returns [3, 6, 9] 由於缺乏ML的文件我堅持了這個

    0熱度

    1回答

    我要求修改我寫的,使得大部分功能我可以選擇使用fldr or fldl Here代碼的描述,包括測試用例。 我想知道這將是偉大的,如果你可以給我一些提示,我應該修改使用這些功能。 由於缺乏ML文檔和例子,我不得不在這裏問這個問題 謝謝。 fun is_member [] x = false | is_member (h::t) x = if (h=x) then true else is_mem

    1熱度

    2回答

    是否有可能在SML模式匹配針對矢量像你可以用一個列表? 有了一個名單,我可以簡單地這樣做: fun foo ([]) = 0 | foo (l::ls) = 1 + foo (ls); 我如何能做到這一點的載體? 我想fun foo (Vector.fromList([])) = 0但是,讓我這個錯誤: Vector.fromList is not a constructor Fou

    1熱度

    1回答

    我想知道是否有編寫使用SML的FOLDR或與foldl函數堆排序算法的一種方式。我在網上找不到一個例子,我想知道是否有人可以給我一些關於這個問題的指導。我想使用遞歸最小的高階函數來實現排序算法。不過,我不知道從哪裏開始。

    3熱度

    2回答

    是否有一種方法可以使用SML中提供的Foldl或Foldr方法來實現氣泡排序?任何指導都會有所幫助。

    0熱度

    2回答

    我想寫一個代碼,給定一個括號列表,我會檢查命令是否有效。 爲了簡單起見,定義了以下數據類型。 datatype par = LPAR | RPAR type pList = par list 我直到現在是: fun valid(nil:plist): bool = true | valid([Lpar]) = false | valid([Rpar]) = false | valid(

    1熱度

    2回答

    我一直在試圖理解SML中的高階函數。我知道如何編寫簡單的高階函數並且也理解簽名。一個例子是: fun increment list = map (fn x=> x + 1) list; val it = fn: int list -> int list 但是,我無法理解下面的高階函數的簽名: fun add x y = x + y; val add = fn: int -> int ->

    0熱度

    1回答

    我對sml有點新,我想了解如何派生表達式類型。 我讀Deriving type expression in ML我試圖按照他所做的來推導我的表達,但我無法理解一個段落。 我試圖推導的表達式是: fn x => fn y => fn z => z(z(y x)) 我在做什麼是如下: fn x : T1 => fn y : T2 => fn z : T3 => z(z(y x)) : T4 在