summaryrefslogtreecommitdiffstats
path: root/Main.hs
diff options
context:
space:
mode:
authorRay Hogenson <rhogenson@posteo.net>2019-09-07 16:36:01 -0700
committerRay Hogenson <rhogenson@posteo.net>2019-09-07 16:36:01 -0700
commit440dd38f24d1df150fb5b4c7965bb6e792c929fe (patch)
tree4d9da56e839f85949dbde1f3b3b0413f3f52b753 /Main.hs
downloadevolution-main.tar.zst
Write a little guyHEADmain
This program is in a weird state right now, but I'm checking it in to git so that I can back it up, since I want to reinstall again.
Diffstat (limited to 'Main.hs')
-rw-r--r--Main.hs20
1 files changed, 20 insertions, 0 deletions
diff --git a/Main.hs b/Main.hs
new file mode 100644
index 0000000..20413f7
--- /dev/null
+++ b/Main.hs
@@ -0,0 +1,20 @@
+module Main where
+
+import qualified BrainFuck
+import System.Environment (getArgs)
+import qualified Evolve
+import qualified Control.Concurrent.Chan as Chan
+import Control.Concurrent (forkIO)
+import Data.List (intercalate)
+
+type BF = [BrainFuck.BF]
+
+main :: IO ()
+main = do a <- getArgs
+ s <- readFile (head a)
+ let bf = BrainFuck.strToBF s
+ c <- Chan.newChan
+ _ <- forkIO $ Evolve.evolve c bf
+ generations <- Chan.getChanContents c
+ mapM_ display generations
+ where display e = putStrLn $ BrainFuck.runBF e ++ "\ncode: (" ++ intercalate "" (map show e) ++ ")"