Pliant talk forum

Pliant talk forum

Discussion: Control structures

Message posted by maybe Marcus on 2002/05/17 19:56:02
In Pliant control structures, what kinds of expressions can one put as a 
'condition'?
Message posted by maybe Hubert Tonneau on 2002/05/17 20:06:06
Any. Pliant is just like LISP and unlike C: there are no constrains about what
kind of expression you can provide to some controls. Only the result of the
expression has to be consistent (as an example a control structure may expect
a boolean), and for some parameter the expression must be constant (as an example
'var' expects a constant type).
Message posted by maybe pom on 2002/05/18 09:16:45
For "constant type", you have to understand an expression which results in
a constant type and does nothing else (has no side effect).
For instance:

gvar {console "hello" eol; Int} z 

won't compile, as {console "hello" eol; Int} has some side effect ("sonsole").
Message posted by maybe Hubert Tonneau on 2002/05/18 09:21:02
On the other hand, if you define factorial function, then
fact 5
will be assumed to be a constant.