列表 & 一个整数 n。该函数应添加列表的第 n 个元素,并返回剩余的列表。例如
插入([5,6,7],2,9);输出:[5,9,6,7]
n 是 2。9 是我添加的第二行
说真的,lutzlover。你需要去阅读一本教科书或一些关于 SML 的介绍。例如,参见SML/NJ 文献页面。
基本上你有两种方法来解决这个问题。给定一个函数insertnth(xs, pos, n)
,那么丑陋的非函数方式就是在位置拆分列表pos
,然后返回拆分的左右部分的位置left @ n :: right
和left
。right
或者更实用的方式,使用递归函数xs
逐个元素遍历列表,pos
每次递减变量,然后当你到达位置 1 时,然后返回n
附加到剩余的列表,以停止递归。