Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import System.Environment
- import System.IO
- import Data.List (delete)
- import qualified Data.ByteString as B
- import qualified Data.ByteString.Char8 as W
- add :: String -> String -> IO ()
- add f t = appendFile f ("[ ] " ++ t ++ "\n")
- remove :: String -> Int -> IO ()
- remove f t = do list <- B.readFile f
- let tasks = W.lines list
- let newlist = W.unlines $ delete (tasks !! t) tasks
- B.writeFile f newlist
- complete :: String -> Int -> IO ()
- complete f t = do list <- B.readFile f
- let tasks = W.lines list
- let task = tasks !! t
- let newlist = W.unlines $ (delete task tasks) ++ [(W.append (W.pack "[*]") (W.drop 3 task))]
- B.writeFile f newlist
- main = do args <- getArgs
- case args of
- [f, "add", task] -> add f task
- [f, "complete", task] -> complete f (read task :: Int)
- [f, "remove", task] -> remove f (read task :: Int)
- _ -> putStrLn "Invalid arguments."
Add Comment
Please, Sign In to add comment