Link Search Menu Expand Document

Languages-beta : SL-4-Definitions.cbs | PRETTY | PDF


Language "SL"

4 Function definitions

Syntax
  FunDef : fun-def ::= 'function' id '(' id-list? ')' block
Semantics
  declare[[ FunDef*:fun-def* ]] : => environments
Rule
  declare[[ 'function' Id '(' IdList? ')' Block ]] =
    { id[[Id]] |->
      function closure
        scope(initialise-local-variables,
          sequential(
            pass-list[[IdList?]],
            handle-return(exec[[Block]]))) }
Rule
  declare[[ ]] = map( )
Rule
  declare[[ FunDef FunDef+ ]] = 
    collateral(declare[[FunDef]], declare[[FunDef+]])

Parameter lists

Syntax
  IdList : id-list ::= id (',' id-list)?