proba

пятница, 2 сентября 2011 г.

Программирование на языке Haskell, урок № 6

Определите следующие функции:

1) Функция removeOdd, которая удаляет из заданного списка целых чисел все нечётные числа. Например removeOdd [1,4,5,6,10] должен возвращать [4,10].

2) Функция substitute, которая заменяет в строке указанный символ на заданный. Пример: substitute ‘e’ ‘i’ “eigenvalue” возвращает “iiginvalui”.

Решение № 1:
 removeOdd :: [Integer] -> [Integer]
 removeOdd [] = []
 removeOdd (x:xs) = if odd x then removeOdd xs else x : removeOdd xs

Запуск:
 Main> :load "c:\\haskell\\laba22.hs"
 Reading file "c:\haskell\laba22.hs":
 Hugs session for:
 C:\Haskell\lib\Prelude.hs
 c:\haskell\laba22.hs

Конечный запуск и результат:
 Main> removeOdd [1,2,5,3,8,9,5]
 [2,8] :: [Integer]

Решение № 2:
 substitute :: Char -> Char -> String -> String
 substitute a b [] = []
 substitute a b (h:t) = if h == a then b : substitute a b t else h :   substitute a b t

Конечный запуск и результат:
 Main> substitute 'a' 'i' "papauif"
 "pipiuif" :: [Char]

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

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