The "Missing:"s below indicate that an entry is incomplete.
| % | commenting (until end of line) |
| @< / @=< / @> / @>= | comparison |
| min / max | comparison (min / max (binary or more)) |
| compare | comparison (returns 3 values (i.e. inferior, equal or superior)) |
| == \== / =@= \=@= / = \= / =:= =\= (14) | equality / inequality (deep) |
| garbage_collect | force garbage collection |
| ( ... ) | grouping expressions |
| =.. (17) | runtime evaluation |
| case-sensitive | tokens (case-sensitivity (keywords, variable identifiers...)) |
| [_a-z][_a-zA-Z0-9]* | tokens (function identifier regexp (if different from variable identifier regexp)) |
| CamelCase for variables, underscores for predicates | tokens (if case sensitive, what is the standard way for scrunching together multiple words) |
| [_A-Z][_a-zA-Z0-9]* | tokens (variable identifier regexp) |
| is | variable assignment or declaration (assignment) |
| = | variable assignment or declaration (declaration) |
| :- | variable assignment or declaration (declaration) |
Missing:
block (grouping statements, especially when statements are not expressions)
| f(a,b,...) | function call |
| .. [ f, A, B, ...] | function call |
| f | function call (with no parameter) |
| the predicate fail | function called when a function is not defined (in dynamic languages) |
| f(Para1, Para2, ....) :- ... . | function definition (predicates) |
| current_predicate | runtime inspecting the caller information |
| catch | exception (catching) |
| throw | exception (throwing) |
| c -> b1 ; c2 -> b2 ; b3 | if_then_else |
| repeat, expr, cond | loop (do something until condition) |
X = val, (X = v1, expr1 ; X = v2, expr2 ; expr_else) | multiple selection (switch) |
| , | sequence |
Missing:
if_then
| :- module(p) | declare |
| :- use_module(name1, name2, ...) | import (selectively) |
Missing:
package scope
| char_code | ascii to character |
| 'z' | character "z" |
| 'z' "z" | character "z" |
| char_code | character to ascii |
| sub_string / sub_atom | extract a substring |
| sub_string / sub_atom | locate a substring |
| write | simple print (on any objects) |
| format (56) | simple print (printf-like) |
| append | string concatenation |
| = \= | string equality & inequality |
| '...' | strings (verbatim) |
| "..." | strings (verbatim) |
| upcase_atom/downcase_atom | uppercase / lowercase / capitalized string |
Missing:
strings (end-of-line (without writing the real CR or LF character))
convert something to a string (see also string interpolation)
sprintf-like
string size
upper / lower case character
accessing n-th character
| No / fail | false value |
| not | logical not |
| ; / , | logical or / and (short circuit) |
| Yes / true | true value |
| [ e | l ] | adding an element at the beginning (list cons) (return the new list (no side-effect)) |
| L = [_|ButFirst] | all but the first element |
| forall | for each element do something |
| member | is an element in the list |
| concat_atom | join a list of strings in a string using a glue string |
| last | last element |
| append | list concatenation |
| [ a, b, c ] | list constructor |
| flatten | list flattening (one level depth) |
| length | list size |
| nth0 / nth1 | list/array indexing |
| get_assoc | lookup an element in a association list |
| reverse | reverse |
| min / max | smallest / biggest element |
| sort / predsort / keysort / mergesort | sort |
| maplist / sublist | transform a list (or bag) in another one |
| maplist2 | transform two lists in parallel |
Missing:
first element
get the first element and remove it
get the last element and remove it
remove duplicates
| Nothing | computable tuple (these are a kind of immutable lists playing a special role in parameter passing) (empty tuple) |
| numlist / between | range (inclusive .. inclusive) |
| ( a, b, c ) | tuple constructor |
Missing:
computable tuple (these are a kind of immutable lists playing a special role in parameter passing) (1-uple)
computable tuple (these are a kind of immutable lists playing a special role in parameter passing) (using a tuple for a function call)
reference (pointer) (creation)
reference (pointer) (dereference)
| + / - / * / / | addition / subtraction / multiplication / division |
| /\ / \/ / xor | bitwise operators (and / or / xor) |
| << / >> | bitwise operators (left shift / right shift / unsigned right shift) |
| \ | bitwise operators (negation) |
| ** | exponentiation (power) |
| log / log10 | logarithm |
| mod | modulo (modulo of -3 / 2 is -1) |
| mod | modulo (modulo of -3 / 2 is 1) |
| rem | modulo (modulo of -3 / 2 is 1) |
| - | negation |
| 1000.0, 1E3 | numbers syntax (decimals) |
| 1000 | numbers syntax (integers) |
| random | random (random number) |
| sqrt / exp / abs | square root / e-exponential / absolute value |
| sin / cos / tan | trigonometry (basic) |
| asin / acos / atan (88) | trigonometry (inverse) |
| truncate / round / floor / ceiling | truncate / round / floor / ceil |
Missing:
operator priorities and associativities