Supported Core forms

  • (quote e)
  • (cons head tail)
  • (car e)
  • (cdr e)
  • (list e ... )
  • (tuple e ... )
  • (binary seg ... )
  • (map key val ...), (map-get m k), (map-set m k v ...), (map-update m k v ...)
  • (lambda (arg ...) ...)
      (match-lambda
        ((arg ... ) {{(when e ...)}} ...) ; Matches clauses
        ... )
    
  • (let ((pat {{(when e ...)}} e)
          ...)
      ... )
    
  • (let-function ((name lambda|match-lambda) ; Only define local
                   ... )                      ; functions
      ... )
    
  • (letrec-function ((name lambda|match-lambda) ; Only define local
                      ... )                      ; functions
      ... )
    
  • (let-macro ((name lambda-match-lambda) ; Only define local
                ...)                       ; macros
      ...)
    
  • (progn ... )
  • (if test true-expr {{false-expr}})
  • (case e
      (pat {{(when e ...)}} ...)
       ... ))
    
  • (receive
      (pat {{(when e ...)}} ... )
      ...
      (after timeout ... ))
    
  • (catch ... )
  • (try
      e
      {{(case ((pat {{(when e ...)}} ... )
              ... ))}}
      {{(catch
         ; Next must be tuple of length 3!
         (((tuple type value ignore) {{(when e ...)}}
          ... )
         ... )}}
      {{(after ... )}})
    
  • (funcall func arg ... )
  • (call mod func arg ... ) - Call to Erlang Mod:Func(Arg, ... )
  • (define-module name declaration ... )
  • (extend-module declaration ... ) - Define/extend module and declarations.
  • (define-function name lambda|match-lambda)
  • (define-macro name lambda|match-lambda) - Define functions/macros at top-level.