Циклическую ротацию списка влево
> rotate 3 [1..10]
[4,5,6,7,8,9,10,1,2,3]
легко определить, используя take и drop:
> let rotate n xs = drop n xs ++ take n xs
Если напустить на это дело pointfree, он даст безумное:
rotate = ap (ap . ((++) .) . drop) take
Можете ли вы написать полностью бесточечную реализацию rotate, сцепив take и drop ровно
(
Read more... )
Comments 13
Reply
Reply
drop `mappend` take
Reply
Reply
Reply
Reply
Reply
getCompose (liftA2 (++) (Compose drop) (Compose take))
Reply
Reply
Reply
ну или liftA2
Reply
Reply
Reply
Leave a comment