Haskell切片和lexing问题

时间:2010-11-29 16:36:49

标签: haskell

如何解析这两个函数?

>  (** (1/2)) $ 40
6.324555320336759
it :: Double

>  ((**) (1/2)) $ 40
9.094947017729282e-13
it :: Double

1 个答案:

答案 0 :(得分:7)

第一个是右侧部分,是:

的简写
(\x -> x ** (1/2)) 40

第二个是使用运算符**的函数形式,基本上将它视为像pow之类的命名函数:

(**) (1/2) 40

等于

(1/2) ** 40

我从代码中省略了$,因为它们是多余的。

(foo bar) $ baz = (foo bar) baz = foo bar baz