I have gotten into the habit of using tacit representation of explicit
definitions.

In other words:

verbM=: 3 :0
   'example monad definition'
)

verbD=: 4 :0
  'example dyad definition'
)

verbV=: 3 :0
  'example monad definition'
:
  'example dyad definition'
)

instead of:

verbM=: monad define
   'example monad definition'
)

verbD=: dyad define
  'example dyad definition'
)

verbV=: verb define
  'example monad definition'
:
  'example dyad definition'
)

Notice, in particular:

   monad
3
   verb
3
   dyad
4

(Aside: note that the top links from
http://www.jsoftware.com/phrases/explicit_def.htm are dead. Maybe someone
should spider jsoftware and compile a list of pages which have this defect?
(From experience: if you try to catalog all defects the problem becomes
overwhelming and neglected.))

Anyways, I've been noticing an issue with the current implementation of (4
:) which I think should be changed.

example=: 4 :0
  'example monad definition'
:
  'example dyad definition'
)

And that "works"... sort of:

   example

4 : ' ''example dyad definition'''


See what happens here? The non-empty monad definition is silently
discarded. I think that J should signal an error for this case. Otherwise
when you promote a dyad definition to a dual valence definition you run the
risk of a bug that looks like you are loading a stale version of your
script.

This proposed change does not conflict with
http://www.jsoftware.com/help/dictionary/d310n.htm

What do you all think?

(That said, note also that we now have an open source license on J - maybe
one of us should step up and start releasing community versions, with
something new from 9!:14'' ?)

Thanks,

-- 
Raul
Thanks,

-- 
Raul
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to