Здравствуйте, Мишень-сан, Вы писали:
МС>Ну для меня этот код пока что слабочитабелен. Haskell я начал изучать несколько дней назад.
Ну тогда еще тренировочные задачки
1) Написать функцию clone, которая повторяет каждый символ в строке (или в списке) заданное число раз. Например clone 2 "abc" должно дать "aabbcc".
2) Написать функцию power, которая повторяет строку (или список) заданное число раз. Например power 2 "abc" должно дать "abcabc".
3) Написать функцию fpower :: Int -> (a -> a) -> (a -> a), которая возводит функцию в указанную степень. Например fpower 3 (*2) должно вернуть функцию эквивалентную троекратному применению (*2), то есть (*2).(*2).(*2) или (*8).
4) Написать функцию rotateLeft, которая производит циклическую перестановку элементов списка влево на указанное число позиций. Будет ли твой код работать, если список бесконечный? А если указанное число позиций больше, чем длина списка?
Попробуй написать в point-free style c использованием существующих комбинаторов.