【问题标题】:sml in list parameter functions recursive列表参数函数中的 sml 递归
【发布时间】:2011-11-02 07:02:47
【问题描述】:

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

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

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

【问题讨论】:

    标签: sml smlnj


    【解决方案1】:

    说真的,lutzlover。你需要去阅读一本教科书或一些关于 SML 的介绍。例如查看SML/NJ Literature 页面。

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

    【讨论】:

    • 我有那个。有趣的插入 (h::t,1) = t| insertnth (h::t,n) = h :: insertnth (t, n-1) ;是这样的吗?
    • 好吧,您将需要至少三个参数,就像您在原始问题中所做的那样,就像我所做的那样:insertnth(xs, pos, n)。除此之外,你几乎在那里
    猜你喜欢
    • 2015-08-16
    • 2015-06-19
    • 2011-10-24
    • 1970-01-01
    • 2021-07-20
    • 2011-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多