0
我想創建一個有類型的功能int -> 'a list -> 'a list list
SML VAL '一個grupper = FN:INT - >' 列表 - >「名單列表
函數調用:
grupper 2 [3, 1, 4, 1, 5, 9]
應當返還[[3, 1], [4, 1], [5, 9]]
grupper 4 [3, 1, 4, 1, 5, 9]
應當返還[[3, 1, 4, 1], [5, 9]]
grupper 42 [3, 1, 4, 1, 5, 9]
應返回[[3, 1, 4, 1, 5, 9]]
。
我得到這個至今
fun grupper _ [] = []
| grupper n (x::xs) = if n > length(x::xs) then [x::xs]
else [List.take(x::xs, n)] @ grupper (n) xs
一些幫助,請。
你應該總是避免使用添加(@),尤其是當你在做的第一個元素列表,只是將其追加。在這裏(如pad所示),您可以將'grupper'返回的列表中的元素與cons運算符(::)一起放入。 –