on fb3160e help sign in
Idris-dev/lib/system.idr
27 lines 668 B history raw
1module system
3import prelude
5%access public
7getArgs : IO (List String)
8getArgs = do n <- numArgs
9 ga' [] 0 n
10 where
11 numArgs : IO Int
12 numArgs = mkForeign (FFun "epic_numArgs" [] FInt)
14 getArg : Int -> IO String
15 getArg x = mkForeign (FFun "epic_getArg" [FInt] FString) x
17 ga' : List String -> Int -> Int -> IO (List String)
18 ga' acc i n = if (i == n) then (return $ rev acc) else
19 do arg <- getArg i
20 ga' (arg :: acc) (i+1) n
22getEnv : String -> IO String
23getEnv x = mkForeign (FFun "getenv" [FString] FString) x
25exit : Int -> IO ()
26exit code = mkForeign (FFun "exit" [FInt] FUnit) code