Inline If Statements

From SCI Wiki
Jump to: navigation, search

Note: This article only applies to SCI Companion

The "if" statement does not return a value, making a the nesting of if's (inline) like this not possible:

Code:
(if (> a ((if(> b c) 5)(else 9)) d)     // This syntax works in SCI Studio, but will not compile in SCI Companion
  ...
)

As indicated above, this code will work in Studio, but will not work in Companion. The way to handle this in Companion is to implement a procedure, which will return a value:

Code:
(procedure public (iif pCondition pTrue pFalse)
   (if (pCondition)
     return pTrue
   )(else 
     return pFalse 
   )
)

The original statement can now be re-written as:

Code:
(if (> a iif(> b c 5 9) d) 
  ...
)