b -> a) => a -> [b] -> a"的定义-6ren"> b -> a) => a -> [b] -> a"的定义-我正在尝试了解 Haskell 函数定义。我采用了 Foldl 函数,其定义为 :t foldl foldl :: (a -> b -> a) -> a -> [b] -> a 现在第一个参数是一个函-6ren">
gpt4 book ai didi

haskell - 如何读取 "Num (a -> b -> a) => a -> [b] -> a"的定义

转载 作者:行者123 更新时间:2023-12-02 14:31:00 26 4
gpt4 key购买 nike

我正在尝试了解 Haskell 函数定义。我采用了 Foldl 函数,其定义为

:t foldl
foldl :: (a -> b -> a) -> a -> [b] -> a

现在第一个参数是一个函数,所以如果我传递它,剩下的就是:

:t foldl (+)
foldl (+) :: Num b => b -> [b] -> b

我将其理解为“一个采用数值并返回采用数组的函数”。

现在,第一个参数真的是一个函数吗?可以读作

foldl :: a -> b -> a -> a -> [b] -> a

相反?

我尝试只传递一个数值,这就是我得到的:

foldl 4 :: Num (a -> b -> a) => a -> [b] -> a

问题是..你怎么读这个?我不明白我有什么。

最佳答案

第一个参数是一个函数,因此不能读作:foldl::a -> b -> a -> a -> [b] -> a。因为 -> 是右关联的,这意味着 a -> b -> ca -> (b -> c) ,即与 (a -> b) -> c

不同

关于haskell - 如何读取 "Num (a -> b -> a) => a -> [b] -> a"的定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19221414/

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