smlnj

    1熱度

    1回答

    我試圖用SML將一個值插入到「註冊」中。如果列表(或寄存器)沒有在該索引處定義,我需要在該索引之前創建一個0的列表。我嘗試了以下方法,但無法使其工作。 fun storeInReg [] valIns idx = if idx = 0 then [valIns] else 0::storeInReg([] valIns (idx-1)) | storeIn

    0熱度

    1回答

    我沒那麼熟悉SML但我已經寫了下面的程序: datatype 'a bin_tree = Leaf of 'a | Node of 'a bin_tree * 'a bin_tree fun height Leaf (x) = 0 | height Node (l1,l2) = 1 + Int.max(l1,l2) fun is_balanced Leaf (x) = true |

    1熱度

    1回答

    我試圖寫在SML一個函數,它給出的一般元素的列表時,重新排序其元素爲等價類,並返回這些類(類型「列表,列表)的列表。 離開在相同的順序類的元素以原始列表。 給定函數定義的元素的等價,如果元素是等價的或否則爲false返回true。 我似乎無法得到解決一握。 fun sample x y = x = y 所需類型:FN:( '' 一 - > '' 一 - > BOOL) - > '' 的列表 -

    0熱度

    1回答

    從我瞭解到, fun addX (X, []) = [] | addX (X, y::ys) = (X + y :: addX(X, ys)); 工作完全正常,但是當我試圖通過列表2用此方法繁殖列表1,這是給我「警告:match nonxhaustive「,這裏是我的代碼: fun multList ([], []) = [] | multList (x::xs, y::ys) = (x

    2熱度

    1回答

    我有一個正在正確工作的函數... 但是,不幸的是在顯示它之前構造了一個很大的字符串。 我想顯示每個字符串,而不是直接concatening人,但我不知道該怎麼辦呢? 下面是函數: fun getBlocked w = case BlockingMgr.listBlockedSuccessors w of nil => "" | ws => concat (

    4熱度

    1回答

    我一直在學習一些函數式編程,並決定拿起ML作爲我的車輛這樣做。只有幾天,我拿起了ML,也許花了大約5-6小時的時間來解決一些問題。無論如何,關於我的問題。 通常,當學習一門語言時,我會通過一些項目歐拉問題來了解語法和操作。所以我一直在研究一個需要階乘函數的問題。雖然我不斷收到溢出錯誤,但通常要在其他語言中解決這個問題,我會添加一些記憶或者依賴標準庫來避免它,但是我對ML的經驗不足使得記憶似乎是陌生

    1熱度

    3回答

    我一直在將字符列表轉換爲int列表時遇到問題。我的目標是基本上取一個數字,如325,並返回一個[3,2,5]的列表。到目前爲止,我所做的是取出數字,然後將其轉換爲字符串,然後將其分解爲char數組。然後我想將每個字符轉換爲相應的int。當我將char列表映射到fn c => Char.ord(c)時,char列表變成了一個?.int列表,這阻止了我對它進行操作(+, - )。我是ML新手,對其類型

    -1熱度

    1回答

    我有此: val a =((1,2),(1,2,1),(1,2,3),5,(4,5,6)); 我需要返回幾個 「x」 是在該元組的功能... 實施例: 很少 「5」 是在元組: funMagic(一,5); 必須返回2 幫助!

    1熱度

    2回答

    我注意到在SML中有兩種定義函數的方法。例如,如果你把add函數,這是兩個方面: val add = fn : int -> int -> int 第二個創建函數類型: fun add x y = x+y; fun add(x,y) = x+y; 與第一種方法創建函數類型 val add = fn : int * int -> int 這兩種類型對於相同功能有什麼區別?還有爲什麼有

    1熱度

    1回答

    我想寫型 'a list * ('a * 'a -> bool) -> 'a list 的快速排序功能,但由於某種原因,我得到: 'a list -> ('a * 'a -> bool) -> 'a list 這裏是我的代碼該函數: fun quicksort xs f = let fun qs [] = [] | qs [x] = [x] | qs (p::