How to load external F# script file and use it in F# interactive?

I suspect that the script you are loading is not in a module which may be causing your problem. Just add

module Script1

in the first script and then you can do

#load "Script1.fsx"
open Script1

and your functions will be accessible


If you don't declare a module in fsx file, it implicitly creates a module the same name as file name.

Therefore, you can always refer to another fsx file using fully qualified names or opening respective modules before use. For example, in Script2.fsx you can do:

#load "Script1.fsx"

open Script1

// Use functions in Script1.fsx
// ...

For running script from a terminal and using it in the interactive mode you can add the next directives:

#if INTERACTIVE
#else
module Script
#endif