I think J has features from the left and right hand side of his
diagram but not the middle.

Here's how I would try to answer his questions.

closures
   J does not support closures, though some uses of closures
   can be emulated using locales (the naming management
   system which is used to implement classes and objects).

encapsulation
   both data and functions are "first class" values in the language,
   and J provides a a functional framework which can be used to
   generate new data and new functions.  Also references (names)
   can be managed in partial isolation using locales.  J does not
   provide for user defined data types and generally treats types
   as a necessary evil whose impact on language semantics should
   be minimized.

   That said, J would be better described as a "function level"
   programming language than as a "functional" programming
   language.

concurrency
   The language itself is synchronous, at the highest level.  However
   the primitives are designed to work "in parallel" on all data in their
   arguments.

laziness
   The language itself is not lazy.  Applications may be lazy where
   the programmer has implemented laziness.

state
   Most of the language uses "functional" (pass by value) state.
   The exceptions are names (user defined names are mutable),
   mapped files and other entities which exist outside the language.

concurrency
   The language itself is synchronous, asynchronous issues can
   only arise when dealing with foreign entities.

data-driven control
   data flow is monotonic within the language.

Note also that J has primitives which deal with the issues
that most languages use control structures for.  "if" structures
can become data selection, and "while" structures can be
replaced by J's array semantics.  In this context, J has more
in common with SQL than, for example, with C.  But this
issue is probably outside the scope of what he was looking
for.

FYI,

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

Reply via email to