As much as I am a fan of extensions, I have to admit that I don't fully
understand the justification for this. After all, the pkg-commands are
plain functions, so why not expose them as such?

Regards,
Elias
On 3 May 2014 13:27, "David B. Lamkins" <dlamk...@gmail.com> wrote:

> During a few idle moments at work today, I flipped through some of the
> BAA archives and came across a short article regarding Dyalog's
> extension to allow user-defined commands.
>
> Yah, I know... Dyalog. But hear me out.
>
> I've been thinking ahead to a time when I'll be ready to roll out the
> package manager. Some of my thoughts have turned to user interface
> issues.
>
> I can of course make an APL-only UI by simply providing functions. But
> wouldn't it be nice to have a way to access the UI using a not-strictly
> APL syntax (rather: something that might admit, for example, simple
> search terms or pathnames without quoting; or maybe even the kind of
> interface that supports a limited vocabulary of subjects and verbs.)
>
> For example, rather than invoking something like:
>
>       pkg_load 'package-name'
>
> I could write:
>
>       ]pkg load package-name
>
> The main benefit in this example is a trivial simplification of syntax.
> On the other hand, the ] serves as a visual reminder in the transcript
> that this particular operation was - from the user's viewpoint - a
> session command and not an operation in the program being used.
>
> I envision a really simple interface to this feature. GNU APL would
> recognize a prefix (something like gnu∆apl∆cmd_) on the name of a
> monadic function and bind that function to be called when the suffix of
> that function's name is present as the name of a ] command. For example:
>
>       ]pkg
>
> would call the monadic function gnu∆apl∆cmd_pkg.
>
> The remainder of the line following the command's invocation would be
> passed as a string to the command (after stripping leading and trailing
> blanks). It'd be the responsibility of the user-defined APL function to
> parse or interpret any supplied arguments. For example:
>
>       ]pkg list all missing
>
> would execute gnu∆apl∆cmd_pkg 'list all missing'.
>
> I sussect that the main changes needed would be to
>   1) extend the ] command lookup to search for an APL function, and
>   2) build a string to pass to APL's internal execute.
>
>
>
>

Reply via email to