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