gpt4 book ai didi

haskell - 将函数应用于haskell中的每个参数

转载 作者:行者123 更新时间:2023-12-02 05:58:10 26 4
gpt4 key购买 nike

有时,我需要创建一个将不同的函数映射到两个值,然后将它们组合在一起的函数。不使用lambda怎么做?

我的职能是:

f :: a -> b
g :: c -> d
combine :: b -> d -> e

问题是:如何在不使用lambda的情况下编写 \x y -> combine (f x) (g y)

最佳答案

一种可选的无点拼写涉及通过使用curryuncurry(***)(来自Control.Arrow)或bimap(来自Data.Bifunctor)将参数作为一对来处理:

GHCi> :t \combine f g -> curry (uncurry combine . (f *** g))
\combine f g -> curry (uncurry combine . (f *** g))
:: (a1 -> b1 -> c) -> (a -> a1) -> (b -> b1) -> a -> b -> c

请注意,与jpath的建议不同,它甚至不比非pointfree版本短。

关于haskell - 将函数应用于haskell中的每个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40564737/

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