Somebody who is interested in J has told me he wishes he could find
summary information on the relationship between J language constructs
and referential transparency.

My impression is that such information is spread fairly diffusely
across J material. My own first quick attempt to summarize this is as
follows:

J code has strong, pure referential transparency insofar as the
components used are effectively pure. This is equally true for
explicit and tacit forms. Most primaries are pure, but a higher
proportion of foreigns are not. These components are not identified as
pure-or-not with the same clarity that other aspects are labeled (e.g.
verb rank) but in practice the "purity" (or lack thereof) is easy
enough to identify. Copula can destroy referential transparency, but
need not. Scope of names is strict and simple (as continuations are
precluded); this fosters referential transparency. The order of
definition is consequential: operators must be defined prior to
invocation, and verbs must be defined prior to execution.

Is some of what I've asserted above in error? Have I overlooked
anything important? (I notice what I've written involves no array
features. Does that paradigm contribute something to this question?)
Can this be simplified or better organized? Perhaps it should be
written with less reliance on J-specific terms?

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

Reply via email to