Сделать домашней|Добавить в избранное
 

Сайт, посвящен программированию,
исходникам разных программ и
известным алгоритмам

 
Исходники программ » Языки программирования » Haskell » Лабораторная работа № 6 (Haskell)
ivi.ru [CPS]
на правах рекламы

Лабораторная работа № 6 (Haskell)

Автор: admin от 3-01-2012, 19:54

Напишите следующие программы на функциональном языке программирования haskell:
1). Программа, считывающая два числа и возвращающая их сумму.
2). Программа, которая принимает в командной строке имя файла и распечатывает его на экране
3). Программа, принимающая в командной строке число n и имя файла и выводящая на экран первые n строк файла.

Решения:

1).

import IO

sumInt :: IO Integer
sumInt =
   let readNum :: IO Integer
       readNum = readLn
   in do putStr "Enter number Integer: "
         x1 <- readNum
         putStr "Enter 2 chislo: "
         x2  sumInt
Результат:
Enter number Integer: 1
Enter 2 chislo: 23
This summ = 24 :: IO Integer


2).
import IO

printFile = do putStr "adres Faila kakov: "
               name <- getLine
               fromHandle <- openFile name ReadMode
               contents <- hGetContents fromHandle
               hPutStr stdout contents
Результат:
Main> printFile
adres Faila kakov: nouhau.hs
import IO
adres Faila kakov: nouhau.hs
import IO

printFile = do putStr "adres Faila kakov: "
               name <- getLine
               fromHandle <- openFile name ReadMode
               contents <- hGetContents fromHandle
               hPutStr stdout contents
:: IO ()


3).
import IO
printStrInFile =
      let readNum :: IO Integer
          readNum = readLn
          nStr _ [] = []
          nStr 0 ss = []
          nStr n (s:ss) = s:nStr (n - 1) ss

       in do putStr "Ykajite fail: "
             name <- getLine
             putStr "Chislo strok: "
             n <- readNum
             fromHandle <- openFile name ReadMode
             contents <- hGetContents fromHandle
             hPutStr stdout (unlines (nStr n (lines contents)))
Результат:
Main> printStrInFile
Ykajite fail: lab6.hs
Chislo strok: 4
import IO

printStrInFile =
      let readNum :: IO Integer
:: IO ()

 

Если вам нравится то, что мы пишем, пожалуйста, нажмите на интересующую вас рекламу сбоку, сверху, или сразу после статьи. Будет стимул писать лучше и чаще. Хорошего вам дня.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий