Гранин Александр (graninas) wrote,
Гранин Александр
graninas

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

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

Такие дела.
Tags: random(), Программирование
Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 2 comments