我需要编写一个separate
类型的函数,int * 'a * 'a list -> 'a lst
以便
返回在列表的每个元素之后separate (k, x, l)
插入元素的列表(从列表末尾开始计数)。例如,应该返回和
应该返回。x
k
l
separate (1, 0, [1,2,3,4])
[1,0,2,0,3,0,4]
separate (3, 0, [1,2,3,4])
[1,0,2,3,4]
到目前为止,这就是我所拥有的,但它会导致错误。谁能帮我?
fun separate (k: int, x: 'a, l: 'a list) : 'a list =
let val count:int = k
in foldr(
(fn (h, t) =>
if count = 0
then count := 1 in
x::h::t
else count = count + 1 : int
h::t
)