F#值名称中打勾(撇号)的目的?

F#值名称中打勾(撇号)的目的?,f#,F#,我正在阅读一篇关于函数组合的教程,我一直在看值声明末尾使用的“运算符 我知道,当它位于参数之前时,它意味着泛型,但当您看到它时,它意味着什么: let add x y = x + y let myFunc' = add 10 我唯一能看到的是,'只是标识符中的另一个字符。是这样吗?因为如果我使用同一个例子,使用myFunc会产生一个未定义的错误,myFunc'会解决这个问题 Yes',是一个有效的标识符字符,尽管它不能是第一个。标识符的结构定义在: 3.4标识符和关键字 ident text=

我正在阅读一篇关于函数组合的教程,我一直在看值声明末尾使用的运算符

我知道,当它位于参数之前时,它意味着泛型,但当您看到它时,它意味着什么:

let add x y = x + y
let myFunc' = add 10

我唯一能看到的是,'只是标识符中的另一个字符。是这样吗?因为如果我使用同一个例子,使用myFunc会产生一个未定义的错误,myFunc'会解决这个问题

Yes',是一个有效的标识符字符,尽管它不能是第一个。标识符的结构定义在:

3.4标识符和关键字

ident text=ident start char ident char*

ident char=字母字符|数字字符|连接字符| 组合字符|格式化字符|'|_


是的,正如@Lee所指出的,
是一个有效的标识符


尽管如此,标识符结尾处的
'
的目的通常是将值表示为与命名的值相关或类似的东西,而不以
'
结尾。这是,F#作为一种函数语言,表示某物为素数,因为a的发音是
aye
,其中a的发音是
aye prime

,是的,这是正确的。它只是标识符中的另一个字符。故事时间:我有时也使用它(也看到其他人不时这样使用它)来表示递归嵌套函数,因此顶级函数可以称为
insert
,而内部函数则是
let rec insert'
,因为没有更好的命名:)