I guess it is too early to ask.  Until you can write a large project with
tacit form only, you do not have to choose.

Пнд, 26 Сен 2011, Christopher McIntosh писал(а):
> (Despite the conversations that have brought us to this point -- and
> ignoring that scenario altogether)  I have a hypothesis that for the
> long-term, a team equipped in a J-focused environment needs to have a very
> detailed design-time road map to avoid a possible scenario in its project
> whereby re-designing one aspect has a negative and significant impact on
> unrelated aspects of the project.   For our team, we had become interested
> in J because of highly regarded recommendations about its fit into an XP
> environment.  At the same time, it appears that folks are suggesting that
> design decisions are required to be made earlier (moreso comparable to the
> waterfall paradigm).  And this is important to the long-term maintainability
> (in terms of cost and time) of the project.
> 
> For example, when considering a function (or function group) and choosing
> the tacit implementation, I have been advised from 2 (seemingly?)
> incompatible perspectives.
> 
> One one hand, it is my understanding that one of the primary advantages to a
> tacit design is the ability to abstract a dependency on names.  On the other
> hand, I understand that, in an ambivalent function, such is not the case.
>  That, unfortunately, this won't work for the dyadic half, since it could
> not distinguish between local x and global x, as x is defined locally in
> both the verb and the adverb.
> 
> And when I look at some implementations, I see that this appears to be the
> case.
> 
> NB.*nl v selective namelist
> NB. Form: [mp] nl sel
> 
> NB.
> NB.   sel:  one or more integer name classes, or a name list.
> NB.         if empty use: 0 1 2 3.
> NB.   mp:   optional matching pattern. If mp contains '*', list names
> NB.         containing mp, otherwise list names starting mp. If mp
> NB.         contains '~', list names that do not match.
> NB.
> NB.  e.g. 'f' nl 3      - list verbs that begin with 'f'
> NB.       '*com nl ''   - list names containing 'com'
> nl1=.(([:4!:1])&(]`(0 1 2 3"_)@.(0=#))) :: cutopen_*z*_
> nlz=:(nl1 : ((4 : 0)nl1)) f.
> if. 0 e. #y do. y return. end.
> 
> if. #t=. x -. ' ' do.
>  'n s'=. '~*' e. t
>  t=. t -. '~*'
>  b=. t&E. &> y
>  if. s do. b=. +./"1 b
>  else. b=. {."1 b end.
>  y=. y #~ n ~: b
> end.
> )
> 
> I see that (on the dyad side of the picture) there is still reference to
> local x. But, this should not be an issue, should it? Since we could go
> ahead and reference x__anotherlocale. In my prima facie testing, I don't
> notice the issue. Tests which had failed in previous tests, pass with this
> example.
> 
> I realize that the road ahead is a long one to become proficient at
> recognizing some of the subtleties that, presently, have us perplexed.
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm

-- 
regards,
====================================================
GPG key 1024D/4434BAB3 2008-08-24
gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to