Size: a a a

2019 November 26

AB

Alexey Bolshakov in pro.elixir
было прикольно. жаль, что они сейчас уже не проводят. вроде бы
источник

DA

Denis Afonin in pro.elixir
Помню, первые месяцы опыта писания кода на Haskell-е напоминали игру в пятнашки с неограниченного размера полем. Что-то написал - скомпилилось (и да, уже работает "по определению":)), поменял в одном месте - всё развалилось, надо править ещё в пяти, поменял там - развалилось остальное.. В общем, было действительно весело:)
Помню первый реальный урок - в простом fastcgi-шном backend-е некая функция вместо ожидаемого hello world-а молча возвращала пустую строку, но стоило только добавить отладочный вывод в консоль где-то посередине кода, сразу всё начинало работать. Ленивость-с:)
источник

DA

Denis Afonin in pro.elixir
Там было что-то типа fastcgi_get_params >>= json_parse >>= my_f >>= json_make >>= fastcgi_reply, и это не работало, но работало fastcgi_get_params >>= json_parse >>= my_f >>= (\rv -> print_to_console (md5sum rv) >> json_make rv) >>= fastcgi_reply
источник

DA

Denis Afonin in pro.elixir
Если интересно, можно поразмышлять например над http://hackage.haskell.org/package/mmtl-0.1/docs/src/Control-Monad-Cont.html - кода там почти нет, тем и интересней. (или лучше над http://www.cse.chalmers.se/edu/year/2013/course/afp/lectures/lecture14/Cont.hs.html)
источник

AU

Alexander Uljev in pro.elixir
Я думаю у парсера нет злого умысла. Отсутствие скобок это фишка Руби, откуда Эликсир позаимствовал синтаксис. И так же как и в Руби при возникновении синтаксической ошибки, она возникает и в вашем случае.
источник

AU

Alexander Uljev in pro.elixir
При перечислении аргументов используется запятая, заканчиваются они символом новой строки.
источник

AU

Alexander Uljev in pro.elixir
В вашем случае после пробела идёт новый символ
источник

AU

Alexander Uljev in pro.elixir
Так это синтаксическая ошибка
источник

DA

Denis Afonin in pro.elixir
Этого я не знал, что в Руби похожая ситуация, спасибо. Раз так, то вопрос снимается, ибо это уже, так сказать, историческая особенность языка.
источник

AU

Alexander Uljev in pro.elixir
А для вас лишний повод разрешить неоднозначность. Потому что не всегда для автора кода всё однозначно.
источник

AU

Alexander Uljev in pro.elixir
Может вы пропустили запятую просто, а может это такой замысел - парсеру невдомёк.
источник

AU

Alexander Uljev in pro.elixir
Насчёт того писать ли скобки - я бы не стал. Посмотрите пример кода на Руби - это как письмо машине.
источник

DA

Denis Afonin in pro.elixir
Ну, синт. ошибкой всё же это не назовёшь, скорее undefined behaviour, который парсер может разрулить так-то и так-то, а может и не разруливать.
источник

AU

Alexander Uljev in pro.elixir
А функция это или переменная. Мне без разницы. И то, и то вернёт значение, а я не стану забивать голову.
источник

AU

Alexander Uljev in pro.elixir
Denis Afonin
Ну, синт. ошибкой всё же это не назовёшь, скорее undefined behaviour, который парсер может разрулить так-то и так-то, а может и не разруливать.
Почему нет? Должна быть запятая или конец строки
источник

AU

Alexander Uljev in pro.elixir
Или перенос
источник

DA

Denis Afonin in pro.elixir
Честно говоря, я когда впервые увидел код на Elixir-е (изучая исходники Pleroma-ы), "загорелся" именно красотой кода и вариативностью его формы. В отличии от уже привычного Erlang-а.
источник

DA

Denis Afonin in pro.elixir
Ну если так посмотреть, то да… В общем, есть повод ещё подумать:)
источник

AU

Alexander Uljev in pro.elixir
Это он вас с толку сбил излишней поучительностью
источник

AU

Alexander Uljev in pro.elixir
У Эликсира в консоли можно степень получить
источник