gpt4 book ai didi

haskell - 将函数组合成一个返回元组的函数

转载 作者:行者123 更新时间:2023-12-04 16:28:45 25 4
gpt4 key购买 nike

Haskell 标准库中是否有一个函数接受两个函数并返回一个函数,该函数将在元组中返回这两个函数的结果,如下所示:

(><) :: (a -> b) -> (a -> c) -> a -> (b, c)
f >< g = \a -> (f a, g a)

以便:
((+2) >< (+3)) 10 == (12,13)
((:[1,2,3]) >< (*2)) 5 == ([5,1,2,3],10)

最佳答案

&&& 来自 Control.Arrow , 有签名:

(&&&) :: Control.Arrow.Arrow a => a b c -> a b c' -> a b (c, c')

这比您描述的更通用,但如图所示 here ,当应用于函数时,它解析为:
(b -> c) -> (b -> c') -> (b -> (c, c'))

它做你所描述的:
\> import Control.Arrow ((&&&))

\> (+2) &&& (+3) $ 10
(12,13)

\> (:[1,2,3]) &&& (*2) $ 5
([5,1,2,3],10)

关于haskell - 将函数组合成一个返回元组的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37378496/

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