I agree with you on locales causing troubles. Especially since some things
just seem to go against the grain of J, i.e. don't work as expected.

For instance today, I tried writing an explicit adverb that would need to
execute in an object's locale. It didn't work, because once a verb is
derived, it looses track of the locale the adverb was defined in. At least
it was well documented in the wiki (
https://code.jsoftware.com/wiki/Vocabulary/Locales#Adverbs_in_Locales), so
instead of writing:

myadv =: 1 : 0
NB. stuff
)

I had to write:
myadv =: 1 : 0
  u myadv_impl (coname'')
)
myadv_impl =: 2 : 0
return_locale=. coname''
cocurrent n
NB. stuff setting return_value as local var
cocurrent return_locale
return_value
)

This works, but honestly, it's ugly.
I imagine having to create a similar conjunction is even more ugly, having
to somehow pass the locale boxed together with one of the arguments of the
conjunction...
I wonder whether there's a use case where one would actually want a
modifier to forget the locale it was defined in (as it is now).

Jan-Pieter

On Thu, 12 May 2022, 19:05 Raul Miller, <rauldmil...@gmail.com> wrote:

> After further thought (though perhaps still not enough time studying
> the code and thinking about its use), a better approach (than
> coinsert'base', which would allow name collisions) would be to use
>
>   do_base_
>
> instead of
>
>   ".
>
> where that is used (getDEoptim and packargs).
>
> Sadly, there's no equivalent workaround for ~
>
> That said, we could define a verb to specify a default locale:
>
>    inlocale=: (],'_','_',~[)^:(0='_'-:{:@])L:0~
>
>    'f' inlocale 'base'
> f_base_
>    'f_foo_' inlocale 'base'
> f_foo_
>    (<'f') inlocale 'base'
> +-------+
> |f_base_|
> +-------+
>
> And then deoptim could be updated with
>     func=. func inlocale'base'
>
> This would require that historical usage of deoptim (which defined
> functions in pdeoptim) would have to be changed, but it would make
> casual use easier.
>
> I'm not sure this is needed in this example (is there any casual use
> of deoptim?), but this issue (documenting and handling locale issues)
> is one I think about way too often.
>
>
> --
> Raul
>
> On Wed, May 11, 2022 at 11:00 PM Ric Sherlock <tikk...@gmail.com> wrote:
> >
> > Hi David,
> > Thanks for the feedback. I agree that adding some additional text there
> may
> > help users trying to work out how to use the addon. Did you have a
> > suggested wording change in mind?
> >
> > The function named will be called from within the 'pdeoptim' locale and
> so
> > needs to either be in the search path of pdeoptim or called from its
> > explicit location (which may or may not be in 'base').
> >
> > The examples in the test folder all append the locale of the desired
> > function to the name to ensure that it is found. There may be a better
> > solution, but when I wrote the addon that was what I came up with!
> >
> > Thanks,
> >
> >
> >
> >
> >
> > On Thu, May 12, 2022 at 2:35 AM David Lambert <b49p23t...@gmail.com>
> wrote:
> >
> > > Suggestion: please amend the comment section to explicitly state that
> > > func include locale.  It now reads
> > >
> > > NB.-y: 2-item list of boxed arguments
> > > NB.-     0{ func - String naming a function f(x,y) to minimize, with
> > > first argument
> > > NB.-             the vector of variables over which minimization is to
> > > take place.
> > > NB.-             It should return a scalar result. Empty values are not
> > > allowed.
> > >
> > > Thank you, David Lambert
> > >
> > > ----------------------------------------------------------------------
> > > For information about J forums see http://www.jsoftware.com/forums.htm
> > >
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to