Крутим список кратко и бесточечно
Mar. 26th, 2015 09:28 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Циклическую ротацию списка влево
Можете ли вы написать полностью бесточечную реализацию 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 ровно одной стандартной библиотечной функцией?
no subject
Date: 2015-03-26 06:33 pm (UTC)no subject
Date: 2015-03-26 07:04 pm (UTC)no subject
Date: 2015-03-26 07:03 pm (UTC)no subject
Date: 2015-03-26 07:06 pm (UTC)no subject
Date: 2015-03-27 12:32 am (UTC)no subject
Date: 2015-03-27 12:59 pm (UTC)no subject
Date: 2015-03-26 07:55 pm (UTC)no subject
Date: 2015-03-26 08:25 pm (UTC)no subject
Date: 2015-03-26 09:17 pm (UTC)no subject
Date: 2015-03-27 06:36 am (UTC)no subject
Date: 2015-03-27 12:57 pm (UTC)ну или liftA2
no subject
Date: 2015-03-30 01:16 am (UTC)no subject
Date: 2015-03-30 07:11 am (UTC)