F#中的高阶函数

Bad*_*sef 2 lambda f# functional-programming

大家好我想表达函数调用test1而不首先定义更高的函数

let higher = fun a b -> a>b
let rec test1 test2 number list=

        match (number,list) with
        |number,[]                           -> []
        |number,x1::xs when test2 a x = true -> x1::test1 test2 number xs 
        |number,x1::xs                       -> test1 test2 number xs 

printfn "%A" (test1 (higher 5 [5;2;7;8]))
Run Code Online (Sandbox Code Playgroud)

Fyo*_*kin 5

这是设计的.函数中定义的值和函数只能在该函数中访问,从外部看不到它们.

这允许我们定义辅助函数和中间值,而不会污染全局命名空间.

要使函数在函数higher外部可访问test1,您需要在函数之前或之后定义它test1,而不是在函数内部.内部定义的任何内容test1都只能在内部访问test1.