Make the arguments of the alu function curried.
authorMatthijs Kooijman <matthijs@stdin.nl>
Thu, 5 Feb 2009 08:20:14 +0000 (09:20 +0100)
committerMatthijs Kooijman <matthijs@stdin.nl>
Thu, 5 Feb 2009 08:20:14 +0000 (09:20 +0100)
Alu.hs

diff --git a/Alu.hs b/Alu.hs
index b888fc9dca18419523a4b33234c6e8e900d083ac..f444abc9fbf950d18d71cbc5aae3afd3e4a1c8ea 100644 (file)
--- a/Alu.hs
+++ b/Alu.hs
@@ -45,9 +45,9 @@ register_bank (addr, High, d) s = -- Write
 
 type AluOp = Bit
 
-alu :: (AluOp, Bit, Bit) -> Bit
-alu (High, a, b) = a `hwand` b
-alu (Low, a, b) = a `hwor` b
+alu :: AluOp -> Bit -> Bit -> Bit
+alu High a b = a `hwand` b
+alu Low a b = a `hwor` b
 
 type ExecState = (RegisterBankState, Bit, Bit)
 exec :: (RegAddr, Bit, AluOp) -> ExecState -> (ExecState, ())
@@ -58,7 +58,7 @@ exec (addr, Low, op) s =
   where
     (reg_s, t, z) = s
     (reg_s', t') = register_bank (addr, Low, DontCare) reg_s
-    z' = alu (op, t', t)
+    z' = alu op t' t
     s' = (reg_s', t', z')
 
 -- Write