40 CHAPTER 2. TOY(FD) Programming Examples
circuitOutput4 = [true,true,true,true,true,true,true,false] % NAND
circuitOutput5 = [true,false,false,false,false,false,false,false] % NOR
% Boolean Functions
not :: bool -> bool
not true = false
not false = true
or :: bool -> bool -> bool
or true X = true
or false X = X
and :: bool -> bool -> bool
and true X = X
and false X = false
% Inputs
i2 :: behaviour
i2 I2 I1 I0 = I2
i1 :: behaviour
i1 I2 I1 I0 = I1
i0 :: behaviour
i0 I2 I1 I0 = I0
% Gate Definitions
notGate :: behaviour -> behaviour
notGate B I2 I1 I0 = not (B I2 I1 I0)
andGate :: behaviour -> behaviour -> behaviour
andGate B1 B2 I2 I1 I0 = and (B1 I2 I1 I0) (B2 I2 I1 I0)
orGate :: behaviour -> behaviour -> behaviour
orGate B1 B2 I2 I1 I0 = or (B1 I2 I1 I0) (B2 I2 I1 I0)
% Behaviour Generation
genBeh :: state -> behaviour
genBeh (A, P, C, D) = i0
genBeh (A, P, C, D) = i1
genBeh (A, P, C, D) = i2
genBeh (A, P, C, D) = notGate (genBeh (A, P, C, D)) <==
domain [A] ((fd_min A) + notGateArea) (fd_max A),
domain [P] ((fd_min P) + notGatePower) (fd_max P),
Kommentare zu diesen Handbüchern