我沒那麼熟悉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
|
我有一個正在正確工作的函數... 但是,不幸的是在顯示它之前構造了一個很大的字符串。 我想顯示每個字符串,而不是直接concatening人,但我不知道該怎麼辦呢? 下面是函數: fun getBlocked w =
case BlockingMgr.listBlockedSuccessors w
of nil => ""
| ws =>
concat (
我注意到在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
這兩種類型對於相同功能有什麼區別?還有爲什麼有
我想寫型 '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::