Skip to content

Commit a655f50

Browse files
committed
Removed unnecessary import statements, migrated 2 more eval functions into Core.
1 parent 3b05d62 commit a655f50

File tree

2 files changed

+12
-24
lines changed

2 files changed

+12
-24
lines changed

core.hs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,17 @@ import List
3434
import IO hiding (try)
3535
import Numeric
3636
import Ratio
37-
import System.Environment
3837

38+
-- Evaluate a string containing Scheme code
39+
evalString :: Env -> String -> IO String
40+
evalString env expr = runIOThrows $ liftM show $ (liftThrows $ readExpr expr) >>= macroEval env >>= eval env
3941

40-
-- Eval section
42+
-- Evaluate a string and print results to console
43+
evalAndPrint :: Env -> String -> IO ()
44+
evalAndPrint env expr = evalString env expr >>= putStrLn
45+
46+
-- Core eval section
47+
-- Note: do not call directly if you want Macro support; instead, call macroEval first.
4148
eval :: Env -> LispVal -> IOThrowsError LispVal
4249
eval env val@(Nil _) = return val
4350
eval env val@(String _) = return val

shell.hs

Lines changed: 3 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,11 @@
1111
- -}
1212

1313
module Main where
14-
import Scheme.Core
15-
import Scheme.Macro
16-
import Scheme.Numerical
17-
import Scheme.Parser
18-
import Scheme.Types
19-
import Scheme.Variables
20-
import Complex
21-
import Control.Monad
14+
import Scheme.Core -- Scheme Interpreter
15+
import Scheme.Types -- Scheme data types
16+
import Scheme.Variables -- Scheme variable operations
2217
import Control.Monad.Error
23-
import Char
24-
import Data.Array
25-
import Data.IORef
26-
import qualified Data.Map
27-
import Maybe
28-
import List
2918
import IO hiding (try)
30-
import Numeric
31-
import Ratio
3219
import System.Environment
3320
import System.Console.Haskeline
3421

@@ -42,12 +29,6 @@ main = do args <- getArgs
4229
flushStr :: String -> IO ()
4330
flushStr str = putStr str >> hFlush stdout
4431

45-
evalString :: Env -> String -> IO String
46-
evalString env expr = runIOThrows $ liftM show $ (liftThrows $ readExpr expr) >>= macroEval env >>= eval env
47-
48-
evalAndPrint :: Env -> String -> IO ()
49-
evalAndPrint env expr = evalString env expr >>= putStrLn
50-
5132
runOne :: [String] -> IO ()
5233
runOne args = do
5334
env <-primitiveBindings >>= flip bindVars [((varNamespace, "args"), List $ map String $ drop 1 args)]

0 commit comments

Comments
 (0)