[EMAIL PROTECTED] wrote: > J, like APL, are not programming languages, they are executable notations.
Back at school, we had a particular metric we used to distinguish those things that could be called programming languages: If you could write Towers of Hanoi in it, it was a programming language. Using this metric, J qualifies. Since many people use J to write programs (and it is quite possible to write programs that greatly resemble programs written in other "legitimate"* programming languages like C), J also appears to be a programming language. * Legitimate in the sense that nobody questions its being a programming language > Everyone and his sister will have a different view of what a minimal > "extended" set is based on their specific needs. There is definitely a certain core without with a language CANNOT function. There are many other useful primitives which are syntactic sugar that could easily be emulated if they did not exist, so such need not be considered essential. For eample: u~ <-> (]u[) (n u v) <-> (n"_ u v) (u v) <-> ([ u [EMAIL PROTECTED]) or even x=:y <-> 'x'=:y > The fear of having more than one needs is a delusional stance which should > be replaced by the amazement of diversity. Some programming languages have specifications that are so filled with unnecessary bloat, that it makes full implementations very difficult, so porting such languages to other platforms is hampered by having such a specification. If, on the other hand, much of this functionality is implemented as function libraries built above a small primitive set, it is much easier to port such a language (and easier to fit programs into small environments, such as embedded microcode, by merely paring down the libraries you don't use - this is much easier than having to remove code from a compiler or interpreter if you don't have the source code). -- Mark D . Niemiec <[EMAIL PROTECTED]> ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
