Re[3]: [Haskell] point-free - этюды
От: Пельмешко Россия blog
Дата: 16.10.09 08:02
Оценка:
Здравствуйте, nikov, Вы писали:

N>Ну тогда еще тренировочные задачки

N>3) Написать функцию fpower :: Int -> (a -> a) -> (a -> a), которая возводит функцию в указанную степень. Например fpower 3 (*2) должно вернуть функцию эквивалентную троекратному применению (*2), то есть (*2).(*2).(*2) или (*8).

Спасибо, nikov! Отлично голову поломал
Можно ли короче и более читабельно на F#?
let fpower = Seq.init >> (>>) Const >> (<<) (Seq.fold (>>) id)
Изначально было:
let fpower n f = Seq.init n (Const f) |> Seq.fold (>>) id


p.s. Я правильно понимаю, что в Хаскеле вместо << юзают flip (.)? Не нашёл в Prelude аналогичного << оператора...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.