Обновить

Комментарии 17

То есть, фактически, программа сгенерировала предложение с двумя числами, потом распарсила его, чтобы вырезать эти два числа обратно, и ответила на вопрос, четная ли их сумма, выведя ответ строкой. Никоим образом, программа не определяет принадлежность этой строки к этому вопросу? Какая часть задач из области ИИ тут решается? Какая польза получилась от этой реализации? Что дают эти испытания?

Честно говоря мне тоже показалось, что статья не очень оправдывает свое название. Я постараюсь в следующий раз быть более избирательным при выборе статьи для перевода. Мне не приятно осознавать, что я потратил зря ваше время. Спасибо за критику.

Возможно, статья является частью какой-то более крупной работы и решаемая в ней конкретная задача имеет смысл. Если так, то может стоит добавить ремарку о смысле происходящего? Да, это перевод, но можно сделать вставку от автора, что будем программировать. А самое главное — для чего. В самом начале, не поняв для чего все это делается, я ждал, чем же все это закончится, пытаясь понять, что происходит из кода. Но понимание алгоритма может быть затруднительным, если читатель не знаком с фунциональным подходом.
При этом, как пример программирования Elixir, статья хорошая. Потому что на конкретном примере понять легче. Раскрыты многие темы: матчинг функций по параметрам, guards, циклы через рекурсию, агенты, pipeline. Вообще, конечно, вопросы есть по необходимости их применения. Но автор оригинального текста новичек. Так же хочу заметить, что, как мне кажется, автор ошибся с организацией приложения. Он сделал модуль, в котором все вместе, и который он запускает и в нем же все проверяет. А надо было сделать приложение, в нем модуль, который понимает строку такого вида и отвечает на эту строку. Проверку нужно было сделать через юнит тестирование.

Достаточно название выбрать более подходящее. Статья очень хорошая для тех, кто делает или планирует делать первые шаги в элексире.

Спасибо, заголовок изменен: "Техники в Elixir для начинающих: Метод проб и ошибок".

Сказочный перевод!
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь

Спасибо, внес правки.


  1. Не могли бы вы указывать ссылку, например на Википедию, когда указываете чье-то мнение.


  2. В Getting started guide на странице Sigils в синтаксисе для регулярных выражений используется ~r// как и в статье. Поэтому оставил как есть.


  3. acc ^^^ Bitwise.band(n, 1) изменил на acc ^^^ (n &&& 1) — этого не было в оригинальной статье, добавил комментарий об этом.


  4. Regex.run заменил на Regex.scan + List.flatten. Честно говоря, так и было в оригинальной статье, я напрасно позволил себе что-то менять.
НЛО прилетело и опубликовало эту надпись здесь

Про агенты — ну давайте все же будем снисходительны. Это далеко не худший способ написать простое хранилище стейта с синхронизированным доступом и несложной логикой.

НЛО прилетело и опубликовало эту надпись здесь

Либо предсказуемый эксепшн про несуществующий процесс, либо мне вернут nil прекрасные разработчики stdlib. Либо там наворотили что-то совсем невероятное, и тогда я сдаюсь.


Вообще, это выглядит вполне обычной проблемой — обычный gen_server поведет себя точно так же.

Заглянул. Ничего там особенного, обычный noproc вылетит, вполне предсказуемо.

Всегда давайте имена своим агентам!

Отлично, просто отлично. С учетом отсутствия в эрланге нормального встроенного регистратора это очень интересное предложение.


Вообще, знаете, я вот смотрю на переводные посты про Elixir, смотрю в /r/elixir, и это все какой-то ад. Полезных постов незначительно больше нуля.

НЛО прилетело и опубликовало эту надпись здесь

В переводные посты, как и в весь хабр, я смотрю больше по привычке. Ну и в камментах иногда бывает интересно.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации