it is never assigned to later, there is an "unused variable" warning. If no value is provided for a or or variable, there is an error. There is a "non-upper-case globals" error for non-uppercase variables. After it is defined, a variable can only be assigned to in an block or function. Control flow Conditional statements A single instruction can be written on the same line following the colon. Multiple instructions are grouped together in a block which starts on a newline (The indentation is required). The conditional expression syntax does not follow this rule. This is pattern matching and is similar to select case but not the same. It is usually used to deconstruct algebraic data types. In languages of the Pascal family, the semicolon is not part of the statement. It is a separator between statements, not a terminator. END-IF may be used instead of the period at the end. In Rust, the comma () at the end of a match arm can be omitted after the last match arm, or after any match arm in which the expression is a block (ends in possibly empty matching brackets {}). Loop statements "step n" is used to change the loop interval. If "step" is omitted, then the loop interval is 1. This implements the universal quantifier ("for all" or "") as well as the existential quantifier ("there exists" or ""). THRU may be used instead of THROUGH. «IS» GREATER «THAN» may be used instead of >. Type of set expression must implement trait std::iter::IntoIterator. Exceptions Common Lisp allows , and to define restarts for use with . Unhandled conditions may cause the implementation to show a restarts menu to the user before unwinding the stack. Uncaught exceptions are propagated to the innermost dynamically enclosing execution. Exceptions are not propagated across tasks (unless these tasks are currently synchronised in a rendezvous). Other control flow statements Pascal has declaration blocks. See functions. label must be a number between 1 and 99999. Functions See reflection for calling and declaring functions by strings. Pascal requires "" for forward declarations. Eiffel allows the specification of an application's root class and feature. In Fortran, function/subroutine parameters are called arguments (since is a language keyword); the keyword is required for subroutines. Instead of using , a string variable may be used instead containing the same value. Type conversions Where string is a signed decimal number: JavaScript only