Ведь правду говорят: если долго мучить что-то одно, мозг тренируется думать в этом направлении, и когда он натренируется до критического предела, что-то обязательно получится. И вот вчера я расколол орешек - сделал свою монаду. Зовется она Named и означает «именованные вычисления» со стратегией связывания «имя передается от вычисления к вычислению, поменять нельзя». По сути, монада простая, но как же нелегко было в эту тему «въехать». Похожа на монаду State, можно сказать, сделана по образу и подобию State. Используется так:
-- Int-named IO calculations:
testIntNamed :: IO ()
testIntNamed = do
res <- evalNamedT intNamedFunc 1
putStrLn . show $ res -- Output: 1
intNamedFunc :: NamedT Int IO Int
intNamedFunc = do
name <- getName
return name
А в прошлые выходные я был на грандиозном программистском мероприятии
CodeFest 2013. В официальной части - около пятидесяти докладов по шести различным секциям, плюс так названные «квартирники». Доклады интересные, люди - замечательные. Узнал, что происходит в мире вокруг, чем люди занимаются, где работают, что нравится и не нравится. Из неофициальной части больше всего понравились аэрохоккей и одна очень умная вещь - MindFlex Duel Game. Я заснял видео:
[1],
[2],
[3],
[4],
[5]. Это, друзья мои, вещь, настоящая фантастика, и она действительно работает. Мы даже поставили несколько простых экспериментов. Скоро у меня тоже такая будет, - я купил игру на Амазоне, и после некоторых особенностей пересылки, она должна быть отправлена в Россию. Надеюсь, успеет прибыть в целости до того, как в мае я отправлюсь в Читу.
Такие дела.