gpt4 book ai didi

types - F# let add1 x = x + 1 和 let add2 x = x +1 之间的区别

转载 作者:行者123 更新时间:2023-12-03 23:33:23 25 4
gpt4 key购买 nike

let add1 x = x + 1有什么区别和 let add2 x = x +1 .空间的意外移除改变了功能类型
val add1 : x:int->int
val add2 : x:(int -> 'a) -> 'a
据我了解,第一个类型语句是 add1 map intint .但是第二个是什么意思。

那么,'a表示一个泛型类型,但是函数如何'add2'返回一个泛型?

感谢您的帮助。

最佳答案

这是 F# 语法的一个怪癖:紧跟数字文字的加号或减号分别被视为正数或负数,而不是后跟数字的运算符。

> 42
it : int = 42

> +42
it : int = 42

> -42
it : int = -42

所以你的第二个例子 let add2 x = x +1相当于 let add2 x = x 1 .表达式 x 1意味着 x是一个函数,它被应用于参数 1 ,这正是您的类型告诉您的:
add2 : x:(int -> 'a) -> 'a

这表示 add2接受一个名为 x 的函数,这需要一个 int并返回一些 'a ,以及 add2本身也返回相同的 'a .

关于types - F# let add1 x = x + 1 和 let add2 x = x +1 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51092883/

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