Я совершенно не спорю, на самом деле (спорю, но исключительно в порядке троллинга); и в окружениях, где соответствующие средства рэдили эвэйлэбл, охотно ими пользуюсь. Другое дело, что я стараюсь сводить необходимость в отладке такими методами к минимуму, и у меня это по-моему удается. Так что в окружениях, где такие средства не, - матерно мечтаю об их присутствии довольно редко.
> код я совершенно не
Это по мотивам чтения архивов haskell-cafe на тему повышения удобства работы с высокоструктурированными данными (минимизация бойлерплейта етц.): там, правда, все к Foldable свели, после чего я утратил нить и поставил закладку почитать статюй основоположников в будущем (самый эффективный способ вкурки ime). Тут же yoinkz по аксессору и валюю достает, fiddle по аксессору, валюю и функции мутирует, st* - то же самое в State, \\ комбинирует аксессоры.
> другой код
Ты будешь смеяться, но я в последние полгода столько курил комбинаторную логику, что распарсил, не приходя в сознание:
boop foop gee goop = foop goop (gee goop) -- S ping goop zoom = goop -- K oot foop gee goop = foop (gee goop) -- B pop foop gee goop = foop goop gee -- C zoom foop = foop (zoom foop) -- комбинатор фиксированной точки cond bloop foop gee goop = if bloop goop then foop goop else gee goop -- не понял только, нахрена goop? опять какие-нибудь радости нон-стриктности? floop = zoom (oot (cond ((==) 0) (ping 1)) (oot (boop (*)) (pop oot pred))) -- факториал, сопесна
Но труевые чуваки вроде меня пишут, конечно, с Church encoding'ом всего вообще на каком-нибудь экмаскрипте.
no subject
Я совершенно не спорю, на самом деле (спорю, но исключительно в порядке троллинга); и в окружениях, где соответствующие средства рэдили эвэйлэбл, охотно ими пользуюсь. Другое дело, что я стараюсь сводить необходимость в отладке такими методами к минимуму, и у меня это по-моему удается. Так что в окружениях, где такие средства не, - матерно мечтаю об их присутствии довольно редко.
> код я совершенно не
Это по мотивам чтения архивов haskell-cafe на тему повышения удобства работы с высокоструктурированными данными (минимизация бойлерплейта етц.): там, правда, все к
Foldable
свели, после чего я утратил нить и поставил закладку почитать статюй основоположников в будущем (самый эффективный способ вкурки ime). Тут жеyoinkz
по аксессору и валюю достает,fiddle
по аксессору, валюю и функции мутирует,st*
- то же самое вState
,\\
комбинирует аксессоры.> другой код
Ты будешь смеяться, но я в последние полгода столько курил комбинаторную логику, что распарсил, не приходя в сознание:
boop foop gee goop = foop goop (gee goop) -- S
ping goop zoom = goop -- K
oot foop gee goop = foop (gee goop) -- B
pop foop gee goop = foop goop gee -- C
zoom foop = foop (zoom foop) -- комбинатор фиксированной точки
cond bloop foop gee goop = if bloop goop then foop goop else gee goop -- не понял только, нахрена goop? опять какие-нибудь радости нон-стриктности?
floop = zoom (oot (cond ((==) 0) (ping 1)) (oot (boop (*)) (pop oot pred))) -- факториал, сопесна
Но труевые чуваки вроде меня пишут, конечно, с Church encoding'ом всего вообще на каком-нибудь экмаскрипте.