【问题标题】:Haskell foldr with function具有功能的 Haskell 文件夹
【发布时间】:2015-03-12 23:25:18
【问题描述】:

我想了解 Haskell foldr 的以下代码是如何评估的。

k x y = x

foldr k 1 [0..5]

结果是0,但是我不明白为什么是0?我想认为 x 是 1 任何列表中的元素是 y。谁能给我解释一下,好吗?我在网上搜索了它,但找不到任何有用的东西。

【问题讨论】:

  • 提示:foldr k 1 [0..5] 扩展为 0 `k` foldr k 1 [1..5]
  • 第一个函数参数接收列表元素。
  • 我怀疑您可能会将foldrfoldl 混淆。

标签: haskell


【解决方案1】:

Haskell Wiki 提供了一些关于如何解释 foldr 的有用信息,包括这张图片:

您可以看到您的表达式如何扩展为:

0 `k` (1 `k` ... (5 `k` 1)))))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-30
    • 1970-01-01
    相关资源
    最近更新 更多