[[if Talk Page|Discuss this page]] === if === See [[http://xelerus.de/index.php?s=functions&function=13|if at Xelerus]] ^ Syntax | (if condition exp1 [exp2]) -> value | ^ Arguments | condition: anything that evaluates to Nil or non-Nil | ^ | exp1: an expression that gets evaluated if 'condition' evaluates to non-Nil (if it is 'true') | ^ | [exp2]: an optional expression that gets evaluated if 'condition' evaluates to Nil (i.e. is 'false') | ^ Returns | value: Whatever the expression that gets invoked returns | ^ Category | [[control structure functions|control structure]] | ^ Description | Basic branching function. Allows executing something only if a certain condition is met. A fundamental thing. | Unless **condition** explicitly evaluates Nil, the function considers it to be **true**. This works for any **Nil** value in any data type: **error**, **function**, **int32**, **list**, **primitive**, **string**, **struct**, **true**. Even a list containing only **Nil** values is considered **true** since the list itself is not equal to **Nil**. This behavior is equivalent to the following code: (neq condition Nil) === Example === (if (eq (sysGetNode) "SE") (objSendMessage gPlayerShip Nil "We are still in Eridani system") (objSendMessage gPlayerShip Nil "We are on the journey to the core") ) Return to [[:Functions]] list