gpt4 book ai didi

scala - 在 Scala 中仅使用 foldRight、foldLeft 和 unfold 实现 map 功能

转载 作者:行者123 更新时间:2023-12-01 23:34:19 24 4
gpt4 key购买 nike

我必须仅使用 foldRight、foldLeft 和 unfold 来实现 Map 函数。这意味着我必须遍历列表中的每个元素并对其应用函数 f。

我已经声明了我自己的列表如下:

abstract class IntList
case class Nil() extends IntList
case class Cons(h: Int, t: IntList) extends IntList

我已经实现了 foldRight、foldLeft 和 unfold 函数。

以及新 map 功能的实现:

def map(ls: IntList, f: Int => Int): IntList = // ??

我已经想了一段时间了,但我不知道从哪里开始。我可能不会在 map 函数中使用递归。我很确定我必须将折叠和展开的力量结合在一起。 Unfold 返回一个 IntList,这是 map 的返回类型。但我不确定我必须为此功能提供什么。

有人知道吗? :)

最佳答案

匹配类型,填写要匹配的参数。

例如,如果您要使用foldRight,那么B 必须是IntList,因为这是 返回的类型 map 。现在用您拥有的与类型匹配的任何值填充 foldRight 的参数。

关于scala - 在 Scala 中仅使用 foldRight、foldLeft 和 unfold 实现 map 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9607371/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com