Pull to refresh
4
0
Юрий Рашковский @yrashk

Путешественник

Send message
А племя мумба-юмба обходится даже без алфавита ;)
case Frame#video_frame.codec of
h264 -> handle_h264(Frame)
; aac -> handle_aac(Frame)
; pcma -> handle_pcma(Frame)
end
А что если это была ошибка?

handle_frame(..) ->
...;
handke_frame(..) ->
...


В данный момент об ошибке сразу станет известно на этапе компиляции. В случае «умного парсера» — в лучшем случае на этапе тестов. В худшем — в продакшне когда function_clause вывалится в лог.
предложения как решить это на уровне парсера?
а человечнее имхо было бы сделать

handle_frame(Frame),
..
handle_frame(#video_frame{ codec = h264 } = Frame) ->
...
ну и так далее по тексту

по сути ответа на пример с if'ом не было ;)
С другой стороны, позитивный момент в том что все больше интереса к erlang vm и его принципам. Да, эти все языки-надстройки скорее лишний барьер на пути к ерлангу, но про позитивные индикаторы не стоит забывать.
мне кажется вообще, что эта проблема совсем не уникальная для erlang. switch/case statement не утомляет в C? или в сложных or/and конструкциях в условиях в любом языке нас же не удивляет что последний or или and оператор надо тоже удалить?

По поводу последнего, представим такой код:

if ( (flag & TCP_NOKIDDING) ||
zlag < Z_LAG_THR ) {
...
}


предположим, последнее условее более не надо

if (flag & TCP_NOKIDDING) {
..
}


сколько строчек поменяется в гите? правильно, тоже две.
Меня лично это момент ничуть не утомляет. Однако можно попробовать нестандартное форматирование?

case Frame#video_frame.codec of
h264 -> handle_h264(Frame)
; aac -> handle_aac(Frame)
; pcma -> handle_pcma(Frame)
end
Но ведь это не про «почему-то», это же вполне ожидаемое поведение.
Примеры «иногда»?
Мне вот все еще интересно, откуда выплывает утомление от знаков препинания?
1. records? (они, конечно, не идеал, но задачу именованных полей решают весьма сносно).
2. И как следствие, я нахожу pattern matching по records весьма удобным. Можно примеры кода который напрягает?
3. Вас напрягает зависимость от знаков препинания в натуральном языке? В erlang, как по мне, весьма логичная схема. Если думать о ф-циях как о предложениях, все становится на свои места. Мы же не ставим точку посреди предложения? Коньюктивы отображаем как запятые? Ну а точка с запятой — это «или» — что то вроде «Мы можем поступить так; или можно пойти другим путем». С этой аналогией мне в свое время стало легко вкуриться в синтаксис.

learnyousomeerlang.com видели?
Это все понятно, но вопрос вот в чем: где начинается затык у Васи из Челябинска?
Вот я до сих пор пытаюсь понять, в чем страшность Erlang? Где именно начинается непонимание?
«Elixir способен просматривать и модифицировать структуру объекта во времени исполнения.»

seriously?
по крайней мере в штатах не надо — для чистых препейдовых аккаунтов, сам брал такие телефоны… в Канаде какие-то аналогичные продукты вроде тоже есть (solo mobile?), но я не знаю точно, сижу на контрактах…
заглавные буквы скорее калька с английских правил (Titles Capitalization)
продам 450d :)

Information

Rating
Does not participate
Location
Vancouver, British Columbia, Канада
Date of birth
Registered
Activity