2014-05-15 9 views
8

Ich gehe durch ein Tutorial zur Funktionszusammensetzung, und ich sehe den ' Operator am Ende einer Wertdeklaration verwendet.Zweck des Ticks (Apostroph) in F # -Wertnamen?

Ich weiß, dass es eine allgemeine bedeutet, wenn es einen Parameter vorausgeht, aber was bedeutet es, wenn man es sehen mag:

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

Das einzige, was ich sehen kann, ist, dass die " nur eine andere ist Zeichen in der Kennung. Ist das richtig? Wenn ich das gleiche Beispiel verwende, gibt myFunc einen nicht definierten Fehler, wobei myFunc ' löst.

+2

Ja, das ist richtig. Es ist nur ein anderes Zeichen in der Kennung. – Gustavo

Antwort

16

Ja, da @Lee zeigte, ' ist ein gültiger Bezeichner.

Obwohl den Zweck von ' am Ende von Identifikatoren im Allgemeinen ist, den Wert zu bezeichnen, wie etwas im Zusammenhang oder ähnlich den benannten Wert ohne die Endung '. Dies ist borrowed from mathematics, F # eine funktionale Sprache zu sein, für das Bezeichnen etwas als prime seit A ist aye ausgesprochen wo A‘aye-prime ist.

+1

Story-Zeit: Ich benutze es manchmal auch (und habe es von Zeit zu Zeit von anderen benutzt), um rekursive verschachtelte Funktionen zu bezeichnen, so dass die Top-Level-Funktion 'insert' genannt wird, während die innere' 'let rec insert'', mangels besserer Benennung :) –

5

Ja, 'ist ein gültiges Identifizierungszeichen, obwohl es nicht das erste sein kann. Die Struktur von Identifikatoren in den specification definiert:

3,4 Namen und Schlüsselwörter

ident-text = ident-Start-Zeichen ident-char *

ident-char = letter-char | Ziffernzeichen | Verbindungszeichen | Kombinationszeichen | Formatierungszeichen | '| _