Size: a a a

2018 December 03

D

Deleted Account in pro.elixir
и получается что анонимки могут замыкать на себе скоуп других процессов, несмотря на всю якобы "изолированность" этих процессов?
Вопрос возможно глупый для эрлангистов/эликсирщиков, я не из этого бэкграунда)
источник

AM

Aliaksandr Martsinovich in pro.elixir
я конечно не спец, но разве замыкание не во время объявления происходит?
источник

D

Deleted Account in pro.elixir
Aliaksandr Martsinovich
я конечно не спец, но разве замыкание не во время объявления происходит?
в моем js мире точно нет)

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

A

Aldar in pro.elixir
Deleted Account
и получается что анонимки могут замыкать на себе скоуп других процессов, несмотря на всю якобы "изолированность" этих процессов?
Вопрос возможно глупый для эрлангистов/эликсирщиков, я не из этого бэкграунда)
источник

D

Deleted Account in pro.elixir
Воу, спасибо. Жаль мой язык опять обосрали)
источник

A

Aldar in pro.elixir
а вообще по хорошему переменных быть не должно, только константы
источник
2018 December 04

B

Buckler in pro.elixir
Привет, Katerina!

Пожалуйста, реши капчу:

Вычисли: 37+98=...

Осталось попыток: 3
Если не решишь - забаню навеки...
Удачи!
источник

Е

Евгений in pro.elixir
Źmićer Rubinštejn
Если ты ожидаешь, что пользователь может всесть мыла ввести номер телефона, и он не распарится как мыло - с чего бы это быть исключительной ситуацией?
В общем-то да, но если это происходит редко, то почему бы и не исключительная ситуация? Ну и почему исключительная ситуация - это обязательно нечто не подлежащее обработке штатным путем?
источник

Е

Евгений in pro.elixir
Исключения хороши тем, что поднимаются выше сами, без бойлерплейта из монад и прочих костылей.
источник

Е

Евгений in pro.elixir
да и сам эликсир может бросать исключения, которые вполне себе не исключительные в обсуждаемом смысле.
источник

(

( in pro.elixir
В эликсире нет ретурнов, а raise это самый что ни на есть ретурн, поэтому он ломает флоу. Эликсир от них типа не зря отказался (да и большинство функциональных языков если на то пошло)
источник

(

( in pro.elixir
Этак можно куда угодно в код понатыкать raise-ов и потом сидеть искать, откуда прилетела ошибка, зато если вы возвращаете только туплы, то все ошибочные ситуации чаще всего будут у вас перед глазами
источник

(

( in pro.elixir
Это аргумент из того спора, который у меня тогда не получилось сформулировать)
источник

YS

Yuri S. in pro.elixir
пользоваться можно везде чем угодно, если язык позволяет, пользуйся, но главное чтобы другой человек потом сел и быстро в этом разобрался, а не сидел и гадал что где, куда и как
источник

Е

Евгений in pro.elixir
(
В эликсире нет ретурнов, а raise это самый что ни на есть ретурн, поэтому он ломает флоу. Эликсир от них типа не зря отказался (да и большинство функциональных языков если на то пошло)
визуально их конечно нет, но по факту они есть.

case foo do
 a ->
   v1
 _ ->
  ...
   v2
end

тот же ранний return, не стоит себя обманывать
источник

Е

Евгений in pro.elixir
(
Этак можно куда угодно в код понатыкать raise-ов и потом сидеть искать, откуда прилетела ошибка, зато если вы возвращаете только туплы, то все ошибочные ситуации чаще всего будут у вас перед глазами
никакой разницы, вот тебе функция вернула тупл с ошибкой, как ты поймешь, кто именно сгенерил этот тупл? Даже наоборот, в исключении есть полная информация о месте где оно было брошено. А тупла - это просто тупла.
источник

(

( in pro.elixir
Евгений
визуально их конечно нет, но по факту они есть.

case foo do
 a ->
   v1
 _ ->
  ...
   v2
end

тот же ранний return, не стоит себя обманывать
При этом такой кейс может стоять только в конце функции. А вдруг у вас до этого какие-то вычисления? А вот raise сможет их прервать.
источник

Е

Евгений in pro.elixir
тут надо рассуждать наоборот, если тебе надо прервать выполнение функции в эликсире, ты городишь case, в другом языке ставишь return или raise
источник

(

( in pro.elixir
Если вам приходится прерывать выполнение функции (а не разделять её на несколько условно потоков, например в {:ok, ...} и {:error, ...}), значит, вы неправильно пишете
источник

(

( in pro.elixir
Знаете эту рекомендацию, которой нас ещё в школах учат - ограничивать функциональность функции ровно тем, как она называется и желательно делать их меньше условных 25 строк? Если писать без исключений, то этому сложно не придерживаться
источник