Open
Description
I propose we add syntax to detect whether the current F# script is being run as the entry-point
#if __MAIN__
.. Main code here
#endif
In Python it is quite easy - and very very common to include code like this
if __name__ == "__main__":
...
The reason it exists is to facilitate composability; being able to reuse functions of a script in other scripts without actually executing the segment underneath "main".
There is no way to do this presently when running an FSI script (correct me if I'm wrong)
Pros and Cons
The advantages of making this adjustment to F# are that it would allow improved re-use of F# scripts by #loading them into other scripts
Affidavit (please submit!)
Please tick this by placing a cross in the box:
- This is not a question (e.g. like one you might ask on stackoverflow) and I have searched stackoverflow for discussions of this issue
- I have searched both open and closed suggestions on this site and believe this is not a duplicate
- This is not something which has obviously "already been decided" in previous versions of F#. If you're questioning a fundamental design decision that has obviously already been taken (e.g. "Make F# untyped") then please don't submit it.
Please tick all that apply:
- This is not a breaking change to the F# language design
- I or my company would be willing to help implement and/or test this