首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在FSI中加载F#模块

在FSI中加载F#模块
EN

Stack Overflow用户
提问于 2014-12-10 19:28:51
回答 1查看 576关注 0票数 5

我有一个fsx文件,用于我的项目的交互开发。它预加载所有的dll,另外,我还想模拟几个在FSI世界中行为不同的函数。

在fsx中,我有以下代码:

代码语言:javascript
复制
// #r needed dlls
open FSharp.Charting

module InteractiveUtil =
    let plotMe (c : ChartTypes.GenericChart) = c.ShowChart() |> ignore
    let logMe (c : string) = c |> printfn "%s"

现在,在.fs文件中,我想使用以下内容:

代码语言:javascript
复制
#if INTERACTIVE
#load "LiveInvestigationPreload.fsx"
open InteractiveUtil
#endif

但是当我试图执行上面的片段时

错误FS0039:未定义命名空间或模块“InteractiveUtil”

我还注意到,InteractiveUtil模块的定义如下所示:

代码语言:javascript
复制
namespace FSI_0009
  module InteractiveUtil = begin
    val plotMe : c:FSharp.Charting.ChartTypes.GenericChart -> unit
    val logMe : c:string -> unit
  end

所以FSI_0009是fsi为我创造的东西。

知道怎么绕过这件事吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-10 19:34:56

好了,明白了。当我将顶级模块放在fsx的开头时,它起了作用。

代码语言:javascript
复制
module InteractiveUtil

#time
#r ...
open FSharp.Charting

let plotMe (c : ChartTypes.GenericChart) = c.ShowChart() |> ignore
let logMe (c : string) = c |> printfn "%s"

我本来会删除这个问题,但既然我已经投了一票,似乎有人对解决办法感兴趣。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27409266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档