Forgive me if this is considered YANQ

Why would you want J or any programming language to be limited to only functional expressions?

A functional expression is explicitly dependent on its arguments and makes parallel computation simpler for both programmers and compilers. The idea is that the expression is deterministic using any evaluation schedule such as call-by-value, call-by-need, or lazy- evaluation.

But for a programming task where the order of business is actually to cause collateral effects such as use and reset of the random link or read and update a data base, what is required is to know that the side effect is correct.

The problem then becomes whether something unobservable will effect the process. If you are able to observe everything that can effect the outcome, the program might still be viewed as deterministic by adding an audit trail.

What is found in practice is that systems can behave in an intrinsically unpredictable manner if there are unobservable small causes that can produce large effects. You then need to work with approximations and statistics and consider what perturbation might affect the outcome and analyze how sensitive outcomes are to unobservable perturbation. Processes that are very sensitive are called chaotic.

And, as with the process of needing an observer to determine whether or not a cat is dead, the process of making an observation has an effect.

Donna
[EMAIL PROTECTED]



On 5-Jul-06, at 3:52 PM, Miller, Raul D wrote:

 What are the problems with ? for functional programming,
   other than the definitional one?

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

Reply via email to