diff options
Diffstat (limited to 'Fractran/Interpreter.hs')
-rw-r--r-- | Fractran/Interpreter.hs | 29 |
1 files changed, 0 insertions, 29 deletions
diff --git a/Fractran/Interpreter.hs b/Fractran/Interpreter.hs deleted file mode 100644 index 1393991..0000000 --- a/Fractran/Interpreter.hs +++ /dev/null @@ -1,29 +0,0 @@ -module Fractran.Interpreter ( - fractran - ) where - - -import Fractran.Parser - - - - -fractran :: FractranProgram -> [Int] -fractran program = - let prog = map (\(x,y) -> (fromIntegral x, fromIntegral y)) (fractions program) - f = (\p v -> if (p == []) - then [] - else let (curX, curY) = head p - newV = v * curX / curY - in if (isInt newV) - then newV : (f prog newV) - else f (tail p) v) - result = map round (f prog (fromIntegral (initialValue program))) - in (initialValue program) : result - - - -isInt :: (RealFrac a) => a -> Bool -isInt x = - x == fromInteger (round x) - |