Add a a new function "stateless".
authorMatthijs Kooijman <m.kooijman@student.utwente.nl>
Fri, 30 Jan 2009 09:25:15 +0000 (10:25 +0100)
committerMatthijs Kooijman <m.kooijman@student.utwente.nl>
Fri, 30 Jan 2009 09:25:15 +0000 (10:25 +0100)
This function converts a stateless circuit into a stateful one (with an
empty state), so it can be simulated.

Sim.hs

diff --git a/Sim.hs b/Sim.hs
index 3848508c220b942412a3b9dd27b640abcb852e54..5a8fe2d56c9b3a808619bf04c86127d6b065f3c8 100644 (file)
--- a/Sim.hs
+++ b/Sim.hs
@@ -1,4 +1,4 @@
-module Sim (simulate, SCircuit, Circuit, simulateIO) where
+module Sim (simulate, SCircuit, Circuit, simulateIO, stateless) where
 import Data.Typeable
 
 simulate f input s = do
@@ -50,4 +50,10 @@ printOutput (i, o, s) = do
   putStr "\nNew State: "
   putStr $ show s
   putStr "\n\n"
+
+-- Takes a stateless circuit and turns it into a stateful circuit (with an
+-- empty state) so it can be used in simulation
+stateless :: Circuit i o -> SCircuit i () o
+stateless f = \i s -> (s, f i)
+
 -- vim: set ts=8 sw=2 sts=2 expandtab: