Определите следующие функции:
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]