Chinaunix

标题: 关于函数参数 [打印本页]

作者: sw2wolf    时间: 2009-05-12 07:46
标题: 关于函数参数
readUTCDate :: String -> CalendarTime
readUTCDate = readDate 0

readDate :: Int -> String -> CalendarTime
readDate tz d =
             case parseDate tz d of
             Left e -> error e
             Right ct -> ct

readDate明明有两个参数, 为何能用一个参数调用 (readDate 0) ?
作者: win_hate    时间: 2009-05-12 08:38
若 f 的签名为 a->b->c

x 类型是 a,则 f x 是一个类型为 b-> c 的函数。

readUTCDate :: String -> CalendarTime
readUTCDate = readDate 0

readDate :: Int -> String -> CalendarTime


readData 签名为 Int -> String -> CalendarTime,所以 readDate 0 应该是 String->CalendarTime,正好跟 readUTCDate 的签名是一致的。
作者: sw2wolf    时间: 2009-05-12 08:39
这就是currying ?

谢谢!
作者: MMMIX    时间: 2009-05-12 09:21
原帖由 sw2wolf 于 2009-5-12 08:39 发表
这就是currying ?

嗯。

另外,Haskell 的函数都是只有一个参数。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2