私は、foldRight、foldLeftおよびunfoldだけを使ってMap関数を実装する必要があります。つまり、リスト内のすべての要素をループし、関数fを適用する必要があります。スクロールでfoldRight、foldLeft、unfoldのみを使用してマップ関数を実装する
私は次のように自分のリストを宣言している:
abstract class IntList
case class Nil() extends IntList
case class Cons(h: Int, t: IntList) extends IntList
そして私はfoldRight、foldLeftを実装した機能を展開しました。
、新たなマップ機能の実装:
def map(ls: IntList, f: Int => Int): IntList = // ??
私は今しばらく考えてきたが、私はどこから始めの手がかりを持っていません。私はマップ関数で再帰を使用しないかもしれません。私は、折り目の力を組み合わせて一緒に展開しなければならないと確信しています。 Unfoldはマップの戻り値の型であるIntListを返します。しかし、私はこの機能で何を与えなければならないのか分かりません。
誰か手掛かりがありますか? :)
ヒント:* foldLeft *または* foldRight *または* unfoldのいずれかが必要です。最も簡単な解決策はfoldRightです。 –
これはかなり標準的な作業です。どのように起動するか分からない場合は、Googleにお問い合わせください。 – Marcin
私はしばらくの間グーグルグーグルをしてきましたが、私はこの問題について同様の話題を見つけることはできません。私はそれが標準的な仕事であり、難しいことではないはずですが、出発点が必要なだけです。 – Devos50