【问题标题】:How can I build a list recursively? ML如何递归地构建列表?机器学习
【发布时间】:2017-06-25 07:57:33
【问题描述】:

我必须编写一个递归函数,它接受三个元素的列表,并返回使用这三个元素创建的另一个列表。例如,我可能有一个类似 [a,b,c] 的列表,而一个函数需要将 a 乘以 b c 次。所以 [2,3,5] 会创建一个类似 [2,6,18,54,162,486] 的列表

我了解 hd、tl、@ 和 :: 列表运算符,但我不了解构建列表的逻辑。

如果我将 hd([2,3,5])* hd(tl([2,3,5)) 相乘,我将得到 6。但是我在哪里附上呢?我需要在每次调用时使用新逻辑,以便在列表中更深入地将最后一个元素乘以 3。

【问题讨论】:

    标签: list recursion ml


    【解决方案1】:

    关键是,你的递归函数应该返回列表,满足停止要求的调用应该返回空列表(或一些起始列表)。

    在这种情况下,函数将 (a * b) 附加到下一个值列表的开头。递减的 c 提供了一个计数器,而中间结果 (a * b) 用作进一步计算的基础。所以这里的列表向后增长,从尾部的最大值到头部的最小值。

    【讨论】:

      猜你喜欢
      • 2020-12-02
      • 1970-01-01
      • 2019-05-03
      • 2021-09-02
      • 2021-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-01
      相关资源
      最近更新 更多