F#从另一个文件中引用模块函数



我正在编写一个非常初学者的f#program( f#core & Visual Studio Code ),如下:

1.Sort.fs

namespace Demo
module Sort =
    let rec quickSort list =
        match list with
        | [] -> []
        | head::tail ->
            let smalls =
                tail |> List.filter(fun c-> c<head)|> quickSort
            let bigs =
                tail |> List.filter(fun c-> c>=head)|> quickSort
            List.concat [smalls;[head];bigs]        

2.program.fs

namespace Demo
open Sort
module Program =
    let list = [3;1;8;4;9;5;7;6]
    [<EntryPoint>] 
    let main argv =
        list |> Sort.quickSort |> printfn "%A"       
        printfn "Hello World from F#!"
        0

但是,当我尝试将 open Sort模块纳入 Main时,我会遇到以下错误:

未定义名称空间或模块"排序"。

未定义值,名称空间,类型或模块"排序"。也许您想要以下一个: sqrt

在哪里,如果我在同一文件下进行排序模块 - `program.fs,一切正常。还有其他内容也需要参考文件吗?

项目资源管理器中文件的顺序非常重要。如果要使用模块Program的模块Sort,则必须在Program.fs之前出现Sort.fs

更多信息可以在此处,此处和此处找到

最新更新