| Search internet |
The base page defines the built in operators listed at the end of this page. The list happens to include all built in operators lgwam knows.
Some comments may be appropriate:
,
, and 
and 
,
,
, and 

construct may be useful in connection with constructs which have side effects.
in you program, you should instead use
. In the latter expression,
puts a maptag on x, then the
operator does functional application under the maptags, and then
beta-reduces to
under the maptag.
is the only built in construct which cannot be used in eager definitions.
is defined by a definition whose right hand side loops indefinitely when evaluated. Implementations have to be 'partially correct' in the sense that if they return a value, they must return the correct value. In this context, an exception counts as a value like any other value, so if a construct returns an exception, it must return the right exception. The right hand side of the definition of
never returns a value, not even an exception. Hence, evaluation of
is not allowed to return a value, not even an exception. When lgwam executes
it writes This takes forever, says goodbye, and exits. Thus,
is a certain death operator: if your program evaluates it, your program is dead. There is no counter for this. If you want your program to be able to resurrect, you must use exceptions rather than the definitive death operator
.
,
, strings, and page symbols
, Gödel brackets
, strings, and page symbols.
The list of built operators reads:
![]() |
x %0 |
![]() |
x %1 |
![]() |
x %2 |
![]() |
x %3 |
![]() |
x %4 |
![]() |
x %5 |
![]() |
x %6 |
![]() |
x %7 |
![]() |
x %8 |
![]() |
x %9 |
![]() |
x * y |
![]() |
x + y |
![]() |
x - y |
![]() |
x .and. y |
![]() |
x .or. y |
![]() |
x .then. y |
![]() |
x :: y |
![]() |
x < y |
![]() |
x <= y |
![]() |
x = y |
![]() |
x > y |
![]() |
x >= y |
![]() |
x apply y |
![]() |
x boolp |
![]() |
x catch |
![]() |
x catching maptag |
![]() |
x div y |
![]() |
x head |
![]() |
x intp |
![]() |
x is bool : y |
![]() |
x is int : y |
![]() |
x is map : y |
![]() |
x is object : y |
![]() |
x is pair : y |
![]() |
x mapp |
![]() |
x maptag |
![]() |
x mod y |
![]() |
x norm |
![]() |
x objectp |
![]() |
x pairp |
![]() |
x raise |
![]() |
x root |
![]() |
x tail |
![]() |
x untag |
![]() |
%% |
![]() |
( x ) |
![]() |
+ x |
![]() |
+x |
![]() |
- x |
![]() |
-x |
![]() |
.not. x |
![]() |
Base |
![]() |
LET x BE y |
![]() |
ash ( x , y ) |
![]() |
bottom |
![]() |
bt2byte* ( x ) |
![]() |
bt2vector* ( x ) |
![]() |
bt2vector ( x ) |
![]() |
ceiling ( x , y ) |
![]() |
destruct ( x ) |
![]() |
evenp ( x ) |
![]() |
exception |
![]() |
false |
![]() |
floor ( x , y ) |
![]() |
half ( x ) |
![]() |
if x then y else z |
![]() |
integer-length ( x ) |
![]() |
logand ( x , y ) |
![]() |
logandc1 ( x , y ) |
![]() |
logandc2 ( x , y ) |
![]() |
logbitp ( x , y ) |
![]() |
logcount ( x ) |
![]() |
logeqv ( x , y ) |
![]() |
logior ( x , y ) |
![]() |
lognand ( x , y ) |
![]() |
lognor ( x , y ) |
![]() |
lognot ( x ) |
![]() |
logorc1 ( x , y ) |
![]() |
logorc2 ( x , y ) |
![]() |
logtest ( x , y ) |
![]() |
logxor ( x , y ) |
![]() |
map ( x ) |
![]() |
norm x |
![]() |
notnot x |
![]() |
object ( x ) |
![]() |
print ( x ) |
![]() |
round ( x , y ) |
![]() |
spy ( x ) |
![]() |
timer ( x ) |
![]() |
trace ( x ) |
![]() |
truncate ( x , y ) |
![]() |
vector ( x ) |
![]() |
vector-norm ( x ) |
![]() |
vector-empty ( x ) |
![]() |
vector-index ( x , y ) |
![]() |
vector-length ( x ) |
![]() |
vector-prefix ( x , y ) |
![]() |
vector-subseq ( x , y , z ) |
![]() |
vector-suffix ( x , y ) |
![]() |
vector2byte* ( x ) |
![]() |
vector2vector* ( x ) |
![]() |
vt2byte* ( x ) |
![]() |
vt2vector* ( x ) |
![]() |
vt2vector ( x ) |
![]() |
YY |
![]() |
compile ( x ) |
![]() |
ripemd ( x ) |
![]() |
sl2rack ( x ) |
![]() |
rack2sl ( x ) |
| Search logiweb.eu |