这两个函数如何解析?
> (** (1/2)) $ 40
6.324555320336759
it :: Double
> ((**) (1/2)) $ 40
9.094947017729282e-13
it :: Double
Run Code Online (Sandbox Code Playgroud)
第一个是右侧部分,是以下内容的简写:
(\x -> x ** (1/2)) 40
Run Code Online (Sandbox Code Playgroud)
第二个是使用运算符的函数形式**,基本上将它视为像命名函数pow或类似的东西:
(**) (1/2) 40
Run Code Online (Sandbox Code Playgroud)
等于
(1/2) ** 40
Run Code Online (Sandbox Code Playgroud)
我已经$从代码中省略了s,因为它们是多余的.
(foo bar) $ baz = (foo bar) baz = foo bar baz
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
142 次 |
| 最近记录: |