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
