是o组合物操作者(例如val x = foo o bar,其中foo和bar是两个功能),仅在单参数的函数和/或功能可用与参数相等数量?如果没有,是什么,比如说,组成语法foo(x,y)用bar(x).
Tay*_*can 17
正如Michael已经说过的那样,SML只有单个参数函数.不过,我想详细说明一下.
以下功能:
fun foo (x,y) = x + y
Run Code Online (Sandbox Code Playgroud)
有类型:
fn : int * int -> int
Run Code Online (Sandbox Code Playgroud)
这意味着第一个参数是两个整数的元组.所以你可以这样做:
(sign o foo) (4,~5)
Run Code Online (Sandbox Code Playgroud)
哪个会给你相同的sign (foo (4,~5)).
好的,但这样的事情怎么样?
fun bar x y = x + y
Run Code Online (Sandbox Code Playgroud)
它有类型:
fn : int -> int -> int
Run Code Online (Sandbox Code Playgroud)
这意味着bar实际上只需要一个整数,并返回一个函数.所以你不能这样做:
(sign o bar) 4 ~5
Run Code Online (Sandbox Code Playgroud)
因为bar返回一个函数,而sign是一个整数.但是你可以这样做:
(sign o bar 4) ~5
Run Code Online (Sandbox Code Playgroud)
因为bar 4是一个为数字加4的函数.
| 归档时间: |
|
| 查看次数: |
4378 次 |
| 最近记录: |