2014-12-10 4 views
3

У меня есть файл fsx, который я использую для интерактивной разработки моего проекта. Он предварительно загружает все DLL, плюс я хочу издеваться над несколькими функциями, которые должны вести себя по-разному в мире FSI.Загрузка модуля F # в FSI

В FSX У меня есть этот код:

// #r needed dlls 
open FSharp.Charting 

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

Сейчас в .fs файлы, которые я хочу играть у меня есть это:

#if INTERACTIVE 
#load "LiveInvestigationPreload.fsx" 
open InteractiveUtil 
#endif 

Но когда я пытаюсь выполнить фрагмент кода выше я получаю

ошибка FS0039: Пространство имен или модуль 'InteractiveUtil' не определен

Я также заметил, что определение модуля InteractiveUtil выглядит следующим образом:

namespace FSI_0009 
    module InteractiveUtil = begin 
    val plotMe : c:FSharp.Charting.ChartTypes.GenericChart -> unit 
    val logMe : c:string -> unit 
    end 

Так FSI_0009 что-то FSI создан для меня.

Любая идея, как обойти это?

ответ

1

Хорошо, получилось. Когда я положил модуль верхнего уровня в начале fsx, он работал.

module InteractiveUtil 

#time 
#r ... 
open FSharp.Charting 

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

Я бы удалил вопрос, но поскольку у меня уже есть один голос, кажется, что кто-то заинтересован в решении.

Смежные вопросы