0
這兩個函數是如何分析的?Haskell切片和lexing問題
> (** (1/2)) $ 40
6.324555320336759
it :: Double
> ((**) (1/2)) $ 40
9.094947017729282e-13
it :: Double
這兩個函數是如何分析的?Haskell切片和lexing問題
> (** (1/2)) $ 40
6.324555320336759
it :: Double
> ((**) (1/2)) $ 40
9.094947017729282e-13
it :: Double
第一個是一個右部,並且是簡寫:
(\x -> x ** (1/2)) 40
第二個是使用操作者**
的函數形式,基本上將其視爲好像它是一個命名的函數像pow
什麼:
(**) (1/2) 40
相當於
(1/2) ** 40
我從代碼中省略了$
,因爲它們是多餘的。
(foo bar) $ baz = (foo bar) baz = foo bar baz
根據`foo`的固定性,最後一個(`foo bar baz`)可能不等於另外兩個。 – adamse 2010-11-29 22:18:02