gpt4 book ai didi

haskell - 对 (fmap length Just) [1,1,1,1] 与 fmap length $ Just [1,1,1,1] 感到困惑

转载 作者:行者123 更新时间:2023-12-02 21:21:15 25 4
gpt4 key购买 nike

我知道括号会强制执行不同的操作顺序,但我不太明白第一个结果:

>> (fmap length Just) [1, 2, 3]
1

而以下内容非常有意义 - 我们将长度函数提升到 Just 结构上,因此我们应该得到“Just [list 的长度]”:

>> fmap length $ Just [1, 2, 3]
Just 3

第一种情况发生了什么?

最佳答案

在第一种情况下,您将获得 Functor 的函数实例,其中 fmap = (.),因此:

fmap length Just [1,2,3]
=
(length . Just) [1,2,3]
=
length (Just [1,2,3])

MaybeFoldable 实例表示 Nothing 的长度为 0Just 的长度为 1 ——如果您认为 Maybe a 有点像 a 的集合,那么这是相当合理的> 其中最多有一个 a

关于haskell - 对 (fmap length Just) [1,1,1,1] 与 fmap length $ Just [1,1,1,1] 感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49103372/

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