gpt4 book ai didi

f# - 空间改变类型?

转载 作者:行者123 更新时间:2023-12-05 00:53:13 25 4
gpt4 key购买 nike

我输入了以下扩展名为 Ionide-fsharp 的代码,它的类型是 int -> int -> int -> int

let test a b c = a / b + c

但是,如果我删除 c 之前的空格
let test a b c = a / b +c
let test a b c = a/b +c

类型变成 int -> (int -> int) -> int -> int ?

但是,以下表达式获取原始类型。
let test a b c = a/b+c

Visual Studio 得到了相同的结果。好像 +c被视为 c在 F# 表达式中。

最佳答案

是的,您的假设是正确的:没有空格的项前面的加号被视为一元运算符,而不是二元运算符。顺便说一下,减号也会发生同样的情况。

确定之后,剩下的只有一种解释方式:b +c必须是函数 b 的应用程序论据+c ,因此 b必须是一个接受 int 的函数.此应用程序的结果用作除法中的分母,因此它的类型必须为 int以及。因此,b必须是 int -> int .

关于f# - 空间改变类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41575195/

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