The recommended script structure is to start the script with any statements which modify the global environment, followed by the body of the script enclosed in braces:
#!/usr/bin/mythryl global_environment_changing_statement (); { main_body_of_script (); };
The idea behind this structure is:
The only call most programmers are likely to use often which changes the global environment is the load command to load a library and make it available to the script, so in practice the above structure will usually reduce to something like
#!/usr/bin/mythryl # load "foo.lib"; load "bar.lib"; load "zot.lib"; ... # Meta-notation for more load commands. # { ... # Meta-notation for unshown code. foo::something(); ... # Meta-notation for unshown code. zot::mumble(); ... # Meta-notation for unshown code. bar::whatever(); ... # Meta-notation for unshown code. };
Many scripts will of course need only standard.lib, which is loaded by default, and consequently will not need any load commands at all, reducing the above structure to just
#!/usr/bin/mythryl # { ... # Meta-notation for unshown code. };
For a working example of defining a custom library and then using it from a script see src/app/tut/factor/use-lib-from-script-demo in the Mythryl source code distribution.
For a tutorial on defining libraries in Mythryl see Multi-file Projects: Libraries and API Definitions.