Здравствуйте, 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 аналогичного << оператора...