小编use*_*258的帖子

Haskell - 斗争理解类型

我是Haskell的新手,但直到现在它真的很有趣.目前我正致力于理解类型和类型类

示例:add :: Integer -> Integer -> Integer.->是正确的联想,这意味着声明类似Integer -> (Integer -> Integer),到目前为止一直很好.但是什么(a->b) -> a -> b意思呢?为什么我们突然使用括号?在我的教科书中,这个声明的一个例子是apply::(a->b)-> a->b带有def 的函数.apply f x = f x.但我不明白,是不是(a->b)单一的功能?

我知道a和b是Typevariables,表明a和b是不同的类型.

haskell types higher-order-functions

2
推荐指数
1
解决办法
122
查看次数

通过使用点和美元来丢弃变量

我是Haskell初学者,我想知道为什么我们可以在使用某些运算符时丢弃某些变量,例如:

     last xs = head (reverse xs)
     last'   = head . reverse
Run Code Online (Sandbox Code Playgroud)

另一个例子:

     example p xs = length (filter p xs)
     example' p = length . filter p
Run Code Online (Sandbox Code Playgroud)

为什么我们不能在这个函数中抛出p?

haskell

0
推荐指数
1
解决办法
93
查看次数

标签 统计

haskell ×2

higher-order-functions ×1

types ×1