[m-users.] Free and Ground in the same error line?
Sean Charles (emacstheviking)
objitsu at gmail.com
Sun Oct 29 02:59:57 AEDT 2023
> On 28 Oct 2023, at 16:53, Tomas By <tomas at basun.net> wrote:
>
> On Sat, 28 Oct 2023 17:29:13 +0200, Sean Charles (emacstheviking) wrote:
>> I've also been contemplating making a command line tool out of the
>> term-rewriting example code
>
> This is a good idea, it is very easy in Mercury, with the token &
> parser libraries.
The file I played with was 'expand_term.m' in the samples folder. Perhaps I might try to tinker with it and find a little job for it in this evenings hack session on my transpiler... this might be the red pill though......
>
>
>> My main issue was finding operators that aren't already taken [...]
>> in Mercury you have to find something not used by any modules you've
>> imported
>
> You can switch to `use_module' instead of `import_module' for those
> that have names you want. Then your name has preference and the
> library ones need qualifier.
I know that but if I use 'use_module' I have to prefix everything with the module name. Ironically, I use import_module most of the time for the standard libraries but I still qualify the name e.g. 'list.is_empty' or 'string.format' etc.
I tend to use 'use' when I have a module that encapsulates something with state, for example in my proof of concept video game I have an on-screen display module called 'osd' which I then ':-use_module osd', and then
OSD = osd.init,
osd.step_update(FrameTime, !OSD)
I read somewhere in the Mercury docs very early on when I started learning that one is supposed to qualify predicates/functions with the module name for readbility. It's a habit that has stuck I guess.
>
> /Tomas
More information about the users
mailing list