From da334c6d92b05547d1a149a623a95e4bc6b8793b Mon Sep 17 00:00:00 2001
From: Camil Staps
Date: Thu, 12 May 2016 07:47:39 +0200
Subject: Cleanup

---
 Brainfuck.icl | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

diff --git a/Brainfuck.icl b/Brainfuck.icl
index 009b907..89f8407 100644
--- a/Brainfuck.icl
+++ b/Brainfuck.icl
@@ -42,7 +42,8 @@ where
     run` :: Program InstrPointer DataPointer Tape *env -> *env | FileSystem env
     run` p iptr dptr t world
     | iptr >= length p = world
-    | p!!iptr == INC || p!!iptr == DEC = run` p (iptr + 1) dptr (apply (p!!iptr) dptr t) world
+    | p!!iptr == INC || p!!iptr == DEC
+		= run` p (iptr + 1) dptr (apply (p!!iptr) dptr t) world
     | p!!iptr == INCP = run` p (iptr + 1) (dptr + 1) t world
     | p!!iptr == DECP = run` p (iptr + 1) (dptr - 1) t world
     | p!!iptr == IFZ && t!!dptr <> 0 = run` p (iptr + 1) dptr t world
@@ -56,18 +57,15 @@ where
         | not ok = abort "Couldn't read input"
         # (ok,world) = fclose io world
         | not ok = abort "Couldn't close stdio"
-        | otherwise = run` p (iptr + 1) dptr (update t dptr c) world
+        = run` p (iptr + 1) dptr (update t dptr c) world
     // must be OUT now
     # io = io <<< toChar (t!!dptr)
     # (ok,world) = fclose io world
     | not ok = abort "Couldn't close stdio"
-    | otherwise = run` p (iptr + 1) dptr t world
+    = run` p (iptr + 1) dptr t world
     where 
         convert :: Cell -> Cell
-        convert n
-        | n < 0 = 0
-        | n > 255 = 255
-        | otherwise = n
+        convert n = max 0 (min 255 n)
 
         apply :: Command DataPointer Tape -> Tape
         apply INC dptr t = update t dptr (t!!dptr + 1)
@@ -81,14 +79,14 @@ where
         forward` p ptr i
         | p!!ptr == IFZ = forward` p (ptr+1) (i+1)
         | p!!ptr == IFNZ = forward` p (ptr+1) (i-1)
-        | otherwise = forward` p (ptr+1) i
+        = forward` p (ptr+1) i
 
         backward` :: Program InstrPointer Int -> InstrPointer
         backward` _ ptr 0 = ptr + 1
         backward` p ptr i
         | p!!ptr == IFZ = backward` p (ptr-1) (i-1)
         | p!!ptr == IFNZ = backward` p (ptr-1) (i+1)
-        | otherwise = backward` p (ptr-1) i
+        = backward` p (ptr-1) i
 
         forward :: Program InstrPointer -> InstrPointer
         forward p ptr = forward` p (ptr+1) 1
@@ -98,7 +96,7 @@ where
 
 // Read a string into a program
 read :: String -> Program
-read s = [readC c \\ c <- fromString s | isMember c ['>','<','+','-','.',',','[',']']]
+read s = [readC c \\ c <- fromString s | isMember c ['><+-.,[]']]
 where
     readC :: Char -> Command
     readC '>' = INCP
-- 
cgit v1.2.3