我正在编写一个非常初学者的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
。
更多信息可以在此处,此处和此处找到