Syntax |
|
Below is the syntax of a small programming language
based on program ::= exp exp ::= ident | numeral | 'letter' | () | true | false | nil | ( exp ) | unopr exp | exp binopr exp | if exp then exp else exp | lambda param . exp | exp exp | let [rec] decs in exp decs ::= dec , decs | dec dec ::= ident = exp param ::= () | ident unopr ::= hd | tl | null | not | - binopr ::= and | or | = | <> | < | <= | > | >= | + | - | * | / | :: priorities: :: 1 cons list (right associative) or 2 and 3 = <> < <= > >= 4 scalars only + - 5 (binary -) * / 6 application 7 {left associative, f x y = (f(x))(y)} - hd tl null not 8 (unary -) NB. The trivial value, ( ), is only present for syntactic compatibility with a strict (non-lazy) version of the language. There are interactive examples. |
|
↑ © L. Allison, www.allisons.org/ll/ (or as otherwise indicated). Created with "vi (Linux)", charset=iso-8859-1, fetched Sunday, 03-Dec-2023 08:47:42 UTC. Free: Linux, Ubuntu operating-sys, OpenOffice office-suite, The GIMP ~photoshop, Firefox web-browser, FlashBlock flash on/off. |