Programlama | Programlama Dilleri | C Programlama Dili |C++

Hata
  • XML Parsing Error at 1:82. Error 9: Invalid character


Unix Sistem Ça?r?lar? (Unix System Calls)

Haskell programlama dilinde yaz?lm?? bu fonksiyonda unix sistem ça?r?lar?n? (Unix System Calls) yapabilen bir uygulama yap?lm??t?r. Unix'te varolan ls fonksiyonunu,cp fonksiyonunu, cat fonksiyonunu, mv fonksiyonunu, rm fonksiyonunu, wc fonksiyonunu, cd fonksiyonunu gerçekleyen tam bir program yaz?lm??t?r.

 Ör Komutlar:

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 :

  1.  
  2. import System.IO
  3. import System.Directory
  4.  
  5. unixcall =
  6.            getContents >>= \ satirlar ->
  7.            calistir (lines satirlar)
  8.           
  9. calistir (b:bs) =
  10.                   fonk ([a |a <-words b]) >>
  11.                   putStr "$>" >>
  12.                   calistir bs
  13.  
  14. fonk (l:[])
  15.             | l=="ls"   = getCurrentDirectory >>= \dir ->
  16.                dirlist dir
  17.  
  18. fonk (l:ls)
  19.              | l=="ls"    = dirlist (head ls)
  20.              | l=="cp"    = kopyala (head ls) (head (tail ls))
  21.              | l=="cat"   = icerikgoster (head ls)
  22.              | l=="mv"    = dosyagit(head ls) (head (tail ls))
  23.              | l=="rm"    = klasorsil(head ls)
  24.              | l=="wc"    = karaktersay (head ls)
  25.              | l=="cd"    = dizinsec (head ls)
  26.  
  27.  
  28.              
  29. dirlist a =
  30.            getCurrentDirectory >>= \dir  ->
  31.            getDirectoryContents a >>= \filelist ->
  32.            setCurrentDirectory a >>
  33.            dosyalariekranayazdir filelist >>
  34.            setCurrentDirectory dir >>
  35.            return ()
  36.                     
  37. dosyalariekranayazdir (l:[]) = putStrLn l
  38. dosyalariekranayazdir (l:ls) =
  39.                                putStrLn l >>
  40.                                dosyalariekranayazdir ls
  41.  
  42.  
  43. kopyala a b =
  44.              openFile a ReadMode >>= \acilacak ->
  45.              openFile b WriteMode >>= \yazilacak ->
  46.              hGetContents acilacak >>= \icerik ->
  47.              hPutStr yazilacak icerik >>
  48.              hClose acilacak >>
  49.              hClose yazilacak
  50.  
  51. icerikgoster a=
  52.                openFile a ReadMode >>= \acilacak ->
  53.                hGetContents acilacak >>= \icerik ->
  54.                putStr icerik
  55.  
  56. dosyagit a b=
  57.               openFile a ReadMode >>= \acilacak ->
  58.               openFile b WriteMode >>= \yazilacak ->
  59.               hGetContents acilacak >>= \icerik ->
  60.               hPutStr yazilacak icerik >>
  61.               removeFile a
  62.              
  63. klasorsil a= removeDirectory a
  64.  
  65. karaktersay a=
  66.                openFile a ReadMode >>= \acilacak ->
  67.                hGetContents acilacak >>= \icerik ->
  68.                putStrLn ("Karakter Sayisi: "++(show(length icerik))) >>
  69.                putStrLn ("Kelime Sayisi: "++(show(length(words icerik)))) >>
  70.                putStrLn ("Satir Sayisi: "++(show(length(lines icerik))))
  71.            
  72.               
  73.  
  74. dizinsec a=  setCurrentDirectory a
  75.  
 

Yorumlar (0)
Sadece kayıtlı kullanıcılar yorum yazabilir!
 
amınıza koyayım amınıza koyayım amınıza koyayım amınıza koyayım amınıza koyayım amınıza koyayım