29 lines
1.5 KiB
Text
29 lines
1.5 KiB
Text
0 DIM OP(13),N(13),X(13,1):READ OP(ZERO),N(ZERO),X(ZERO,0),X(ZERO,1):CN = CN + 1:DATA1,0,0,1
|
|
1 C = ZERO:GOSUB 10:C=R:GOSUB 10:C=R:GOSUB 10:THREE = R
|
|
2 C = THREE :GOSUB 10:FOUR = R
|
|
3 C = THREE :GOSUB 80:PRINT "THREE -> "R
|
|
4 C = FOUR :GOSUB 80:PRINT "FOUR -> "R
|
|
5 C = THREE:D = FOUR :GOSUB 50:C = R:GOSUB 80:PRINT "THREE + FOUR -> "R
|
|
6 C = THREE:D = FOUR :GOSUB 60:C = R:GOSUB 80:PRINT "THREE * FOUR -> "R
|
|
7 C = THREE:D = FOUR :GOSUB 70:C = R:GOSUB 80:PRINT "THREE ^ FOUR -> "R
|
|
8 C = FOUR :D = THREE:GOSUB 70:C = R:GOSUB 80:PRINT "FOUR ^ THREE -> "R
|
|
9 I = 5 :GOSUB 90:C = R:GOSUB 80:PRINT "5 -> FIVE -> "R;:END
|
|
REM SUCC
|
|
10 R = CN:OP(R) = OP(C):N(R) = N(C) + 1:X(R,0) = X(C,0):X(R,1) = X(C,1):CN = CN + 1:RETURN
|
|
REM SUM
|
|
20 FOR I = 1 TO N:A = A + B:NEXT I:R = A:RETURN
|
|
REM MUL
|
|
30 FOR I = 1 TO N:A = A * B:NEXT I:R = A:RETURN
|
|
REM POW
|
|
40 FOR I = 1 TO N:A = A ^ B:NEXT I:R = INT (A):RETURN
|
|
REM CHURCH SUM
|
|
50 RES = CN:OP(RES) = 1:N(RES) = 1:X(RES,0) = N(C):X(RES,1) = N(D):CN = CN + 1:R = RES:RETURN
|
|
REM CHURCH MUL
|
|
60 RES = CN:OP(RES) = 2:N(RES) = 1:X(RES,0) = N(C):X(RES,1) = N(D):CN = CN + 1:R = RES:RETURN
|
|
REM CHURCH POW
|
|
70 RES = CN:OP(RES) = 3:N(RES) = 1:X(RES,0) = N(C):X(RES,1) = N(D):CN = CN + 1:R = RES:RETURN
|
|
REM CHURCH TO NUM
|
|
80 N = N(C):A = X(C,0):B = X(C,1):ON OP(C) GOTO 20,30,40:STOP
|
|
REM NUM TO CHURCH
|
|
90 R = ZERO:IF I = 0 THEN RETURN
|
|
91 I = I - 1:GOSUB 90:C = R:GOTO 10"SUCC
|