|
|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 3968 (0xf80)
Types: TextFile
Names: »SIMPL.SCL«
└─⟦216f59cd8⟧ Bits:30002641 SCANLOG - Piccoline vers. nov. 87
└─⟦this⟧ »SIMPL.SCL«
; Jan Rubæk Pedersen 15 Marts 1985
vælg_een simplificer
simplificer(Udtryk,Udtryk) hvor
(heltal(Udtryk) eller konstant(Udtryk) eller funktion(Udtryk)).
simplificer(Udtryk,Resultat) hvis
find_operator(Operator,Venstre,Højre,Udtryk),
simplificer(Venstre,Venstre_Resultat),
simplificer(Højre,Højre_Resultat) og
s(Operator,Venstre_Resultat,Højre_Resultat,Resultat).
slut.
vælg_een find_operator
find_operator(plus,Venstre,Højre,Venstre+Højre).
find_operator(minus,Venstre,Højre,Venstre-Højre).
find_operator(gange,Venstre,Højre,Venstre*Højre).
find_operator(divider,Venstre,Højre,Venstre/Højre).
slut.
vælg_een s
s(plus,Udtryk,0,Udtryk).
s(plus,0,Udtryk,Udtryk).
s(plus,U1,U2,Resultat) hvor
heltal(U1) og
heltal(U2) hvis
Resultat = værdi_af(U1+U2).
s(plus,U1+U2,U3,U2+U4) hvor
heltal(U1) og
heltal(U3) hvis
U4 = værdi_af(U1+U3).
s(plus,U1+U2,U3,U1+U4) hvor
heltal(U2) og
heltal(U3) hvis
U4 = værdi_af(U2+U3).
s(plus,U1-U2,U3,U1+U4) hvor
heltal(U2) og
heltal(U3) hvis
U4 = værdi_af(U3-U2).
s(plus,U1-U2,U3,-U2+U4) hvor
heltal(U1) og
heltal(U3) hvis
U4 = værdi_af(U1+U3).
s(plus,U1-U2,U3,U3+U1-U2) hvor
(konstant(U2) eller funktion(U2)).
s(plus,U1+U2,U3,U3+U1+U2) hvor
heltal(U2).
s(plus,U1,U2,U2+U1) hvor
(konstant(U2) eller funktion(U2)).
s(plus,U1,U2,U1+U2).
s(gange,U1,0,0).
s(gange,0,U1,0).
s(gange,U1,1,U1).
s(gange,1,U1,U1).
s(gange,U1,U2,U3) hvor
heltal(U1) og
heltal(U2) hvis
U3 = værdi_af(U1*U2).
s(gange,U1*U2,U3,U2*U4) hvor
heltal(U1) og
heltal(U3) hvis
U4 = værdi_af(U1*U3).
s(gange,U1*U2,U3,U1*U4) hvor
heltal(U2) og
heltal(U3) hvis
U4 = værdi_af(U2*U3).
s(gange,U1*U2,U3,U3*U1*U2) hvor
heltal(U2).
s(gange,U1,U2,U2*U1) hvor
(konstant(U2) eller funktion(U2)).
s(gange,U1/U2,U3,U4/U2) hvor
heltal(U1) og
heltal(U3) hvis
U4 = værdi_af(U1*U3).
s(gange,U1/U2,U3,U1*U4) hvor
heltal(U2) og
heltal(U3) hvis
U4 = værdi_af(U3/U2).
s(gange,U1/U2,U3,U3*U1/U2) hvor
(konstant(U3) eller funktion(U3)).
s(gange,U1,U2,U1*U2).
s(minus,U1,0,U1).
s(minus,0,U1,-U1).
s(minus,U1,U2,U3) hvor
heltal(U1) og
heltal(U2) hvis
U3 = værdu_af(U1-U2).
s(minus,U1-U2,U3,-U2+U4) hvor
heltal(U1) og
heltal(U3) hvis
U4 = værdi_af(U1-U3).
s(minus,U1-U2,U3,U1-U4) hvor
heltal(U2),
heltal(U3) og
U4 = værdi_af(U2+U3).
s(minus,U1-U2,U3,U1-U3-U2) hvor
heltal(U2).
s(minus,U1,U2,-U2+U1) hvor
heltal(U1).
s(minus,U1+U2,U3,U2+U4) hvor
heltal(U1) og
heltal(U3) hvis
U4 = værdi_af(U1-U3).
s(minus,U1+U2,U3,U1+U4) hvor
heltal(U2) og
heltal(U3) hvis
U4 = værdi_af(U2-U3).
s(minus,U1-U2,U3,-U3+U1-U2) hvor
(konstant(U3) eller funktion(U3)).
s(minus,U1,U2,U1-U2).
s(divider,U1,0,0) hvis
falsk.
s(divider,0,U1,0).
s(divider,U1,1,U1).
s(divider,1,U1,1/U1).
s(divider,U1,U2,U3) hvor
heltal(U1) og
heltal(U2) hvis
U3 = værdi_af(U1/U2).
s(divider,U1/U2,U3,U4/U2) hvor
heltal(U1) og
heltal(U3) hvis
U4 = værdi_af(U1/U3).
s(divider,U1/U2,U3,U1/U4) hvor
heltal(U2) og
heltal(U3) hvis
U4 = værdi_af(U2*U3).
s(divider,U1*U2,U3,U2*U4) hvor
heltal(U1) og
heltal(U3) hvis
U4 = værdi_af(U1/U3).
s(divider,U1*U2,U3,U1*U4) hvor
heltal(U2) og
heltal(U3) hvis
U4 = værdi_af(U2/U3).
s(divider,U1*U2,U3,U1/U3*U2) hvor
heltal(U2).
s(divider,U1,U2,U1/U2).
slut.
«eof»