Hi Elias,

just loop around user_commands:

*loop(u, user_commands.size())
   {
      user_commands[u].prefix   ...         // the command
      user_commands[u].apl_function   ...   // the APL function called
...
   }*

in SVN 250 you have to add *public: *before the declaration of user_commands in Command.hh; I will fix that in the next SVN. Note that the user can remove commands and that*user_commands* is vector<>
so it is rather volatile (not to be stored elsewhere)

/// Jürgen


On 05/06/2014 05:09 PM, Elias Mårtenson wrote:
Right now I'm using the .def files to retrieve the list of ]-commands (for tab-expansion). Clearly this will not be enough if there is a facility to add new ones at runtime.

What method should I use to get a full list of these commands from within a native function?

Regards,
Elias


On 6 May 2014 23:07, Juergen Sauermann <[email protected] <mailto:[email protected]>> wrote:

    Hi David, Peter,

    I have added a *simple* facility for adding user defined commands
    (the command being
    implemented in APL (possibly as native function)). I will no go as
    far as described in Dyalog's document below, however.

    This could also be used for experimental commands or commands
    "missing" in GNU APL.

    See ]HELP or 'info apl'. SVN 250.

    /// Jürgen



    On 05/03/2014 08:08 PM, David B. Lamkins wrote:
    On Sat, 2014-05-03 at 15:02 +0200, Juergen Sauermann wrote:
    Hi David,

    from what I hear Dyalog APL seems to be a good interpreter and I have no
    problem with it.
    I am only a little more conservative when it comes to new and
    non-standard APL features.
    But Peter Teeson had ideas going into a similar direction.
    I hope I didn't give the impression that I was casting aspersions on
    Dyalog. They've taken APL in some new and interesting directions. All I
    meant is that many of Dyalog's contributions to the language tend to be
    outside of the canon of ISO/IBM APL 2.

    One question that I have is how the implementation of a new command
    would look like.
    Is it an APL function (which basically means that the command only
    relieves the user
    from quoting the argument of the command) or would it be implemented in
    or C++
    like native functions?

    As I envisioned it: the former. Just some syntactic sugaring around an
    APL function.

    And do we know how often this feature in Dyalog was used in real life?
    Its used to provide access to many of their development tools.

    Seehttp://docs.dyalog.com/13.2/User%20Commands.pdf  .






Reply via email to