Ich habe eine einfache Funktion, die jeden Primfaktor einer gegebenen Eingangsnummer auflistet. Es besteht aus:Verschachtelte Funktionen in F #
let rec f n x a =
if x = n then
x::a
elif n % x = 0 then
f (n/x) x (x::a)
else
f n (x+1) a
let fact n = f n 2 []
fact 315
val factors : int list = [7; 5; 3; 3]
Es funktioniert, aber ich möchte es eine einzige Funktion machen: Wie kann ich definieren fact
mit f
in direkt verschachtelt? Ich habe versucht, das brillant ausgedrückte Konzept here anzuwenden, aber ich kann nicht abstrahieren, wie man eine Drei-Argument-Funktion (f
) in einem Argument (fact
) verschachtelt.
'fun' kann nicht als Bezeichner in F # verwendet werden, da es ein sehr häufiges Stichwort ist. – TeaDrivenDev
Dies wird nicht einmal kompiliert. Zuerst ist 'Spaß' ein Schlüsselwort. Zweitens, woher kommen 'f' und' a'? – nphx
'f' ist wahrscheinlich das selbe wie' fun'. – TeaDrivenDev