gpt4 book ai didi

haskell - 我可以映射一对没有箭头的第一个元素吗?

转载 作者:行者123 更新时间:2023-12-04 13:11:59 26 4
gpt4 key购买 nike

我正在关注仿函数,应用仿函数……我不确定如何到达我想要的地方,但我觉得遵循这些类型应该让我更接近。

有没有一种简单的方法来制作 map -alike 仅适用于 2 元组的第一个元素?以first来自 Control.Arrow并使用 Arrow (->) ,这很好地解决了问题:

map . first :: (b -> c) -> [(b, d)] -> [(c, d)]

我唯一担心的是我还没有对箭有真正的直觉,所以如果我继续这样做,我可能迟早会发现自己陷入困境。另外,这似乎是一个相当方便的案例,不能一概而论。

我可以通过使用仿函数、单子(monad)或其他任何东西来获得相同的功能,同时达到我想要的核心吗?我在玩弄
\f -> map (f `on` fst)

- 类似的想法,但无法完全实现。

最佳答案

箭头有很好的组合器来操作元组。您几乎可以将它们视为缺失的元组函数!

所以例如

> :t \f -> map (f *** id)
:: (b -> c) -> [(b, c')] -> [(c, c')]

是映射第一个组件的有用方法。

关于haskell - 我可以映射一对没有箭头的第一个元素吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10818779/

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