我有两个参数。第一个是列表,另一个是整数n。 我们的函数形成了一个新列表,其中包含参数列表的前n个元素,并假设为n
([1,2,3,4],2 )
[1,2]
如何仅使用-> nil, ::, @
?
答案 0 :(得分:1)
您所描述的是SML基础库中的List.take
函数:
List.take ([1,2,3,4],2 )
[1,2]
如果你想自己制作这个功能:
fun take ([], _) = []
| take (_, 0) = []
| take (x::xs, n) = x::take(xs, n-1)
或者为了证明-> nil, ::, @
的使用(不推荐使用@
,仅用于说明目的):
fun take (nil, _) = nil
| take (_, 0) = nil
| take (x::xs, n) = [x] @ take(xs, n-1)