Крутим список кратко и бесточечно
Mar. 26th, 2015 09:28 pmЦиклическую ротацию списка влево
Можете ли вы написать полностью бесточечную реализацию rotate, сцепив take и drop ровно одной стандартной библиотечной функцией?
> 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 ровно одной стандартной библиотечной функцией?