首页 > 解决方案 > Haskell Currying 简单示例

问题描述

我定义了一个函数 minCurr:

minCur a = (\b -> if a > b then b else a)

当询问我得到的 minCur 类型时

minCur :: Ord a => a -> a -> a

我所期望的是

minCur :: Ord a => a -> (a->a)

为什么是这样?

标签: haskellcurrying

解决方案


a -> b -> c与 是完全相同的类型a -> (b -> c)。打印类型时,省略括号以提高可读性。

(a -> b) -> c相反总是用括号打印,否则它可能会与其他类型混淆。


推荐阅读