gpt4 book ai didi

sml - SML `o` 运算符仅对单参数函数有用吗?

转载 作者:行者123 更新时间:2023-12-03 20:00:17 24 4
gpt4 key购买 nike

o组合运算符(例如 val x = foo o bar ,其中 foobar 都是函数),仅可用于单参数函数和/或具有相同参数数量的函数?如果没有,例如,组合 foo(x,y) 的语法是什么?与 bar(x) .

最佳答案

正如迈克尔已经说过的,是的,SML 只有单参数函数。不过,我想详细说明一下。

以下功能:

fun foo (x,y) = x + y

有类型:
fn : int * int -> int

这意味着第一个参数是两个整数的元组。所以你可以这样做:
(sign o foo) (4,~5)

这会给你与 sign (foo (4,~5)) 相同的结果.

好的,但是这样的事情呢?
fun bar x y = x + y

它有以下类型:
fn : int -> int -> int

这意味着 bar 实际上只需要一个整数,并返回一个函数。所以你不能这样做:
(sign o bar) 4 ~5

因为 bar 返回一个函数,而 sign 接受一个整数。不过,您可以这样做:
(sign o bar 4) ~5

因为 bar 4是一个将数字加 4 的函数。

关于sml - SML `o` 运算符仅对单参数函数有用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14690556/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com