Functions documented to accept a parameter of type Expr are special. They usually evaluate these expressions in a non-standard sequence. For example, If() will only evaluate the second or third argument, but never both. These special properties are only available for elementary functions and commands. You cannot write functions or subroutines that take Expr parameters.

Commands and Functions taking Expr as Parameter