sml in list参数函数递归

时间:2011-11-01 21:37:12

标签: sml smlnj

列表&整数n。该函数应该添加列表的第n个元素,并返回剩余的列表。例如

插入([5,6,7],2,9); 输出:[5,9,6,7]

n是2。 9是我添加第二行

1 个答案:

答案 0 :(得分:2)

说真的,lutzlover。您需要阅读教科书或SML的一些介绍。例如,请参阅SML/NJ Literature页面。

基本上你有两种解决这个问题的方法。给定函数insertnth(xs, pos, n),那么丑陋的非功能性方法是将列表拆分到位置pos,然后返回left @ n :: right,其中leftright是拆分的左右两部分。或者更具功能性的方法,使用递归函数逐个元素地遍历列表xs,每次递减pos变量,然后当到达位置1时,返回n附加到剩余列表,以停止递归。