gpt4 book ai didi

function - 是否可以在 Haskell 中的列表上映射函数元组?

转载 作者:行者123 更新时间:2023-12-04 13:01:38 27 4
gpt4 key购买 nike

我正在尝试找到一种方法来做这样的事情:

(head, last) `someFunction` [1, 2, 3]

生成元组 (1, 3)作为输出。

它在理论上似乎类似于应用仿函数,但有点倒退。我猜有一个类似的功能可以做到这一点(或某种方法),但我似乎无法找到它/弄明白。

我尝试定义这样的函数:
fmap' :: ((a -> b), (a -> b)) -> [a] -> (b, b)
fmap' (f1, f2) xs = (f1 xs, f2 xs)

但 GHC 实际上不会编译这个。

任何帮助都会很棒;谢谢!

编辑(一年后!):

我的 fmap'无法编译,因为类型签名错误。显然有更好的方法来做我正在做的事情,但是我的 fmap' 的类型应该改为:
fmap' :: ((a -> b), (a -> b)) -> a -> (b, b)

在这种情况下,它编译并运行得很好。

最佳答案

我认为你可以用箭头做到这一点。

head &&& last $ [1,2,3]

将返回 (1,3) .

关于function - 是否可以在 Haskell 中的列表上映射函数元组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11694275/

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