home *** CD-ROM | disk | FTP | other *** search
- FUNCTION NULL (EX1,
- %LOCAL% EX2),
- WHEN ZERO (EX1) EXIT,
- WHEN FREE (EX1 * EX2, EX2) EXIT,
- ENDFUN $
-
- FUNCTION ` (EX1),
- WHEN ATOM (EX1), EX1 EXIT,
- WHEN APPLY (GET('`, FIRST(EX1)), ARGEX(EX1)) EXIT,
- EX1,
- ENDFUN $
-
- PROPERTY `, {, FUNCTION (LEX1,
- %LOCAL% EX1,EX2,LEX2,LEX3,LEX4),
- WHEN COLMAT (EX1: ADJOIN ('{, LEX1)),
- POP (EX1),
- LEX1: LEX2: LEX3: FALSE,
- LOOP
- WHEN ATOM (EX1) EXIT,
- EX2: REST (POP (EX1)),
- PUSH (POP (EX2), LEX1),
- LEX2: ADJOIN (EX2, LEX2),
- ENDLOOP,
- LOOP
- LEX3: ADJOIN (ADJOIN ('[, REVERSE (LEX1)), LEX3),
- WHEN EMPTY (FIRST (LEX2)) EXIT,
- LEX4: REVERSE (LEX2),
- LEX1: LEX2: FALSE,
- LOOP
- WHEN ATOM (LEX4) EXIT,
- EX2: POP (LEX4),
- PUSH (POP (EX2), LEX1),
- LEX2: ADJOIN (EX2, LEX2),
- ENDLOOP,
- ENDLOOP,
- LEX3: ADJOIN ('{, REVERSE (LEX3)) EXIT,
- ADJOIN ('[, MAPFUN ('`, LEX1)),
- ENDFUN $
-
- PROPERTY `, [, FUNCTION (LEX1),
- ADJOIN ('{, MAPFUN('`, LEX1)),
- ENDFUN $
-
- FUNCTION ROW1 (EX1, EX2,
- % LOCAL % EX3 ),
- EX3: LIST (),
- LOOP
- BLOCK
- WHEN EX1 EQ EX2, PUSH (1, EX3) EXIT,
- PUSH (0, EX3),
- ENDBLOCK,
- WHEN EX1 EQ 1, ADJOIN ('[, EX3) EXIT,
- EX1: EX1-1,
- ENDLOOP,
- ENDFUN $
-
- FUNCTION IDMAT (EX1,
- %LOCAL% EX2, EX3),
- WHEN NOT POSITIVE (EX1), LIST ('IDMAT, EX1) EXIT,
- EX2: EX1,
- EX3: FALSE,
- LOOP
- WHEN ZERO (EX2) EXIT,
- PUSH (ROW1 (EX1, EX2), EX3),
- EX2: EX2 - 1,
- ENDLOOP,
- EX3: ADJOIN ('{, EX3),
- ENDFUN $
-
- RDS() $
-