F#中的嵌套函数

Wor*_*ice 3 f# function

我有一个简单的函数,列出给定输入数的每个素数因子.它由以下组成:

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]
Run Code Online (Sandbox Code Playgroud)

它的工作原理,但我想提出的是一个单一的功能:我如何定义factf直接嵌套在?我试图应用这里出色表达的概念,但我没有抽象如何f在一个参数one(fact)中嵌套三个参数function ().

Mar*_*ann 6

  1. 将函数体移动fact到新行.确保它缩进.
  2. 在声明fact和刚刚移动的函数体之间添加一个空行.
  3. 剪切整个定义fun,并将粘贴到您在第二步中创建的空白行中.
  4. 缩进复制的代码,使其成为本地函数 fact.