You are viewing graninas

Previous Entry | Next Entry

Программистское

Черная дыра
Ведь правду говорят: если долго мучить что-то одно, мозг тренируется думать в этом направлении, и когда он натренируется до критического предела, что-то обязательно получится. И вот вчера я расколол орешек — сделал свою монаду. Зовется она 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]. Это, друзья мои, вещь, настоящая фантастика, и она действительно работает. Мы даже поставили несколько простых экспериментов. Скоро у меня тоже такая будет, - я купил игру на Амазоне, и после некоторых особенностей пересылки, она должна быть отправлена в Россию. Надеюсь, успеет прибыть в целости до того, как в мае я отправлюсь в Читу.

Такие дела.

Comments

( 2 comments — Leave a comment )
(Anonymous)
Feb. 10th, 2014 10:03 pm (UTC)
Named - это не Reader?

Named <-> Reader
NamedT <-> ReaderT
getName <-> ask
graninas
Feb. 11th, 2014 01:54 am (UTC)
Да, это так.
( 2 comments — Leave a comment )