FSI 能否很好地处理多模块/文件 F# 项目?考虑以下项目:
模块.fs:
module Xyz
let add x y = x + y
程序.fs:
module Program
open Xyz
let result = add 1 2
选择并运行最后两Program.fs
行将产生以下 FSI 错误:
Program.fs: error FS0039: The namespace or module 'Xyz' is not defined
这里有什么问题?
所以,假设我有以下项目结构:
A.fs
B.fs
C.fs
D.fs
E.fs
我想运行E.fs
. E.fs
使用所有其他.fs
文件,所以我open
每个文件都有一个。如果以后我还想从任何其他文件中运行一些代码,我将不得不对#loaded
之前没有的任何文件重复该过程。
根据您的建议,似乎要让我的E.fs
文件在 FSI 上运行我要么必须创建一个单独的 .fsx 文件,要么有一个单独的
#if INTERACTIVE
#load "..."
对于我将使用的每个模块,这在 IMO 中是非常多余的。我在这里遗漏了什么,还是这明显违反了 KISS 和 DRY 原则?