Хорошо ли работает FSI с многомодульными / файловыми проектами F #?
Рассмотрим следующий проект:
module.fs:
module Xyz
let add x y = x + y
Program.fs:
module Program
open Xyz
let result = add 1 2
Выбор и запуск последних 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?