2014-05-15 39 views
8

我正在閱讀函數組合的教程,並且我始終看到在值聲明結尾處使用的'運算符。F#值名稱中的剔號(撇號)的用途是什麼?

我知道這意味着一個通用的,當它前面的參數,但它是什麼意思,當你看到它像:

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

我能看到的唯一的事情是,只是另一個字符在標識符中。是對的嗎?因爲如果我使用相同的示例,使用myFunc會給出未定義的錯誤,其中myFunc'確實會解析。

+2

是的,這是正確的。這只是標識符中的另一個字符。 – Gustavo

回答

16

是的,正如@Lee指出的,'是一個有效的標識符。

雖然,目的的'在標識符的結束通常是指價值的東西相關或類似的不結束'命名值。這是borrowed from mathematics,F#是一個功能性的語言,用於表示某物爲黃金因爲一個發音aye其中A」aye-prime

+1

故事時間:我有時也使用它(並且已經看到其他人不時使用它)來表示遞歸嵌套函數,所以頂層函數可以被稱爲「插入」,而內部函數可以被稱爲「插入」 rec插入',缺乏更好的命名:) –

5

是的,'是一個有效的標識字符,雖然它不能是第一個。標識符的結構在specification定義:

3.4標識符和關鍵字

IDENT-文本= IDENT - 開始 - 炭IDENT-字符*

IDENT炭=信炭| digit-char |連接字符| combine-char | formatting-char | '| _