packages feed

idris-0.1.7: lib/system.idr

-- System/OS interaction functions

namespace System {

  numArgs = mkForeign (FFun "epic_numArgs" [] FInt); [%eval]
  getArgn = mkForeign (FFun "epic_getArg" [FInt] FStr); [%eval]

  getArgs' : List String -> Int -> IO (List String);
  getArgs' acc 0 = return acc;
  getArgs' acc n = do { arg <- getArgn (n-1);
                        getArgs' (Cons arg acc) (n-1); 
                      };

  getArgs : IO (List String);
  getArgs = do { num <- numArgs;
                 getArgs' [] num; };

}