У меня есть простая функция, которая перечисляет каждый простой коэффициент заданного входного числа. Он состоит из:Вложенные функции в 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]
Это работает, но я хотел бы сделать из нее одну функцию: как я могу определить fact
с f
непосредственно вложен в? Я попытался применить концепцию, блестяще выраженную here, но я не могу отвлечься, как вложить три аргумента функции (f
) в один аргумент один (fact
).
'fun' не может быть использован в качестве идентификатора в F #, так как это очень общее ключевое слово. – TeaDrivenDev
Это даже не компилируется. Во-первых, 'fun' является ключевым словом. Во-вторых, откуда берутся 'f' и' a'? – nphx
'f', вероятно, то же самое, что и' fun'. – TeaDrivenDev