我有一个finit.fsx
文件要在fsi.exe启动时加载,如:
#r xxxx
type xx = xxx
module Util =
let cd path = xxxx
...
启动fsi.exe后,将其加载为
namespace FSI_0002
module Util = begin
val cd : string -> unit
...
end
问题是如何使用module util
?我不能open Util
或直接使用cd
。
为了进一步困扰我,如果我将命名空间放在顶行(如namespace Test
),在fsi.exe中,它将被加载为
namespace FSI_0002.Test
val cd : string -> unit
...
Module Util
在哪里?然后我必须open Test;;
然后Util.cd
。
有没有办法在F#启动脚本中定义模块并自动打开模块?谢谢。
答案 0 :(得分:5)
我相信您可以明确指定.fsx
文件中的所有代码都在某个模块中(例如,Main
)并将AutoOpen
属性添加到模块中:
[<AutoOpen>]
module Main
let foo = 10
当您#load
文件后,foo
值应显示在顶层。
答案 1 :(得分:2)
[<AutoOpen>]
module Util =
let cd path = ...