Size: a a a

2019 November 26

DA

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

Ещё бы анонимные функции в Elixir-е можно было бы вызывать, как обычные.. Но это явные придирки.
источник

AU

Alexander Uljev in pro.elixir
За исключением ArgumentError
источник

DA

Denis Afonin in pro.elixir
Alexander Uljev
Это он вас с толку сбил излишней поучительностью
Именно! Сработал практически-животный инстинкт защиты от воспитателей:)
источник

AU

Alexander Uljev in pro.elixir
Denis Afonin
Как в Haskell-е, где любой скаляр - константная функция.

Ещё бы анонимные функции в Elixir-е можно было бы вызывать, как обычные.. Но это явные придирки.
Согласен. Эта точка мне в глаз бьёт
источник

AU

Alexander Uljev in pro.elixir
Можно apply попробовать
источник

DA

Denis Afonin in pro.elixir
Да, кстати, как вариант.
источник

AU

Alexander Uljev in pro.elixir
Мне очень нравится пример из обучения по Rails, где упомянут Пайтон и его консоль. Пишешь exit, а он пишет "exit пишется со скобками!"
источник

DA

Denis Afonin in pro.elixir
Вот занятно - когда-то давно, когда на Erlang-е писал, упёрся в ограничение, что анонимная функция не может себя рекурсивно вызвать (по объективным причинам, конечно). Зато теперь, вынырнув из мира Haskell-а и зная про fixed point-комбинат, это уже совершенно не проблема:)
источник

AU

Alexander Uljev in pro.elixir
Denis Afonin
Вот занятно - когда-то давно, когда на Erlang-е писал, упёрся в ограничение, что анонимная функция не может себя рекурсивно вызвать (по объективным причинам, конечно). Зато теперь, вынырнув из мира Haskell-а и зная про fixed point-комбинат, это уже совершенно не проблема:)
Я не академик, так что пойду отсюда
источник

DA

Denis Afonin in pro.elixir
Ага, я помню ещё времена holy war-а между перлистами и питонистами, то бишь "There’s More Than One Way To Do It" vs "There should be one—and preferably only one—obvious way to do it."
источник

DA

Denis Afonin in pro.elixir
Ну я тоже; тут важно, что решение-то таки существует (и, конечно, очень трудно представить реальную ситуацию, когда оно может быть оправдано)
источник

DA

Denis Afonin in pro.elixir
Alexander Uljev
Я не академик, так что пойду отсюда
Поэтому и пришлось из мира Haskell-а выныривать, ибо как интересно ни было, как бы сознание ни развивало, но язык этот был и остаётся академическим (имхо).
источник

PG

Pïg Grëënëst in pro.elixir
Denis Afonin
Вот занятно - когда-то давно, когда на Erlang-е писал, упёрся в ограничение, что анонимная функция не может себя рекурсивно вызвать (по объективным причинам, конечно). Зато теперь, вынырнув из мира Haskell-а и зная про fixed point-комбинат, это уже совершенно не проблема:)
Теперь это не так, к слову
источник

DA

Denis Afonin in pro.elixir
Ммм, интересно. Где об этом почитать можно? А то находится только https://elixirforum.com/t/recursive-anonymous-functions/18421 и https://www.reddit.com/r/elixir/comments/41bva5/recursive_anonymous_functions_in_elixir/ двухлетней давности.
источник

PG

Pïg Grëënëst in pro.elixir
В эрланге, в эликсире нету
источник

DA

Denis Afonin in pro.elixir
О, и правда, начиная с 17-ой версии можно Foo = fun F(X) -> F(X) end.
источник

DA

Denis Afonin in pro.elixir
А вот практичный вопрос: есть работающий в виде daemon-а релиз (или просто нода), есть консоль, подключённая к нему через remote (или через iex —remsh). Внутри ноды генерятся логи через, ну допустим, Logger.info.
Можно ли как-нибудь увидеть эти логи в этой консоли?
источник

DA

Denis Afonin in pro.elixir
Понятно, что консоль подключённая есть другая нода, уже со своим собственным (не факт, что работающим) Logger-ом,. Можно сделать какую-нибудь проксю, пробрасывающую сообщения, но может, эта задача уже давно решена или я вообще не о том думаю?
источник

DA

Denis Afonin in pro.elixir
Сейчас логи пишутся в syslog, но туда не попадают сообщения с уровнем debug (и нечего им там делать). Собственно, задача - по необходимости быстро до этих debug-сообщений добираться.
источник

DA

Denis Afonin in pro.elixir
Ох, вот как всегда, стоило вопрос задать, как сразу и ответ нашёлся: Logger.configure_backend(:console, [device: Process.group_leader()])
источник