perm filename FOO1.ECL[NET,GUE] blob sn#089092 filedate 1974-02-27 generic text, type T, neo UTF8
IMPLY←EXPR(A:FORM,B:FORM;BOOL)
EQUALL(A,B) OR 
BEGIN
DECL AOP:FORM LIKE A.CAR;
DECL BOP:FORM LIKE B.CAR;

DECL A1:FORM LIKE A.CADR;
DECL B1:FORM LIKE B.CADR;
DECL A2:FORM LIKE A.CADDR;
DECL B2:FORM LIKE B.CADDR;
DECL AC:INT LIKE VAL(A.CADDDR);
DECL BC:INT LIKE VAL(B.CADDDR);

AND(AOP=BOP OR AOP="=" AND BOP="LE",
   A2=B2,
  (A1=B1 AND AC LE BC) OR
     AND8MVAL8A1)=INT,MVAL(B1=INT,VAL(A1) GE VAL8B1)))
END;

EQUALL←EXPR(F1:FORM,F2:FORM;BOOL)
BEGIN
MVAL(F1)#MVAL8F2)=>FALSE;
MVAL8F1)=DTPR  =>EQUALL8F1.CAR,F2.CAR) AND EQUALL(F1.CDR,F2.CDR);
VAL8F1)=VAL(F2);
END;

WEAKER←EXPR(OP1:FORM,OP2:FORM;FORM)[)OP1="="=>OP2;OP1(];

[)DECL SEL\LIST:FORM BYVAL QL('LISP');
LOAD "SYS:LIB" (];

PF←EXPR(L\:FORM;NONE)GENERIC(MVAL(F))
[DTPR]=>PRINTL(F.CDAR," ",F.CAR," ",F.CADDR," + ",F.CADDDR);
TRUE=>PRINT(F);
END;

MAP←EXPR(R\:ROUTINE) REPEAT L\=NIL=>NOTHING
	R\(EVAL(L\.CAR));
	L\←L\.CDR(];

PFL←EXPR(L\:FORM LIDTED)[)PRINT("
");MAP(PF)(];

PRINTL←EXPR(L\:FORM LISTED)MAP(PRINT);

PFC←EXPR(C:FORM BYVAL)
REPEAT
PRINT("
");
C=NIL=> NOTHING;
TO 5 REPEAT C=NIL=>NOGHING;
	PF(C.CAR);
	PRINT("	");
	C←C.CDR;
END;
END;
MVAL←EXPR(A:ANY;MODE)MD(VAL(A));

DECL A2:FORM LIKE A.CADDR;
DECL B2:FORM LIKE B.CADDR;
DECL AC:INT LIKE VAL(A.CADDDR);
DECL BC:INT LIKE VAL(B.CADDDR);