ls
$ > ls C:
$ > cp dene.hs C:\\celal.txt
$ > cat dene.hs
$>mv C:\\celal.txt D:\\celal.txt
$>rm D:\\dene
$>wc D:\\dene.hs
$>cd C:
Program Kodu :
import System.IO
import System.Directory
unixcall =
getContents >>= \ satirlar ->
calistir (lines satirlar)
calistir (b:bs) =
fonk ([a |a <-words b]) >>
putStr "$>" >>
calistir bs
fonk (l:[])
| l=="ls" = getCurrentDirectory >>= \dir ->
dirlist dir
fonk (l:ls)
| l=="ls" = dirlist (head ls)
| l=="cp" = kopyala (head ls) (head (tail ls))
| l=="cat" = icerikgoster (head ls)
| l=="mv" = dosyagit(head ls) (head (tail ls))
| l=="rm" = klasorsil(head ls)
| l=="wc" = karaktersay (head ls)
| l=="cd" = dizinsec (head ls)
dirlist a =
getCurrentDirectory >>= \dir ->
getDirectoryContents a >>= \filelist ->
setCurrentDirectory a >>
dosyalariekranayazdir filelist >>
setCurrentDirectory dir >>
return ()
dosyalariekranayazdir (l:[]) = putStrLn l
dosyalariekranayazdir (l:ls) =
putStrLn l >>
dosyalariekranayazdir ls
kopyala a b =
openFile a ReadMode >>= \acilacak ->
openFile b WriteMode >>= \yazilacak ->
hGetContents acilacak >>= \icerik ->
hPutStr yazilacak icerik >>
hClose acilacak >>
hClose yazilacak
icerikgoster a=
openFile a ReadMode >>= \acilacak ->
hGetContents acilacak >>= \icerik ->
putStr icerik
dosyagit a b=
openFile a ReadMode >>= \acilacak ->
openFile b WriteMode >>= \yazilacak ->
hGetContents acilacak >>= \icerik ->
hPutStr yazilacak icerik >>
removeFile a
klasorsil a= removeDirectory a
karaktersay a=
openFile a ReadMode >>= \acilacak ->
hGetContents acilacak >>= \icerik ->
putStrLn ("Karakter Sayisi: "++(show(length icerik))) >>
putStrLn ("Kelime Sayisi: "++(show(length(words icerik)))) >>
putStrLn ("Satir Sayisi: "++(show(length(lines icerik))))
dizinsec a= setCurrentDirectory a