@proelixir

Страница 100 из 1045
Dmitriy
31.08.2016
18:51:17
я понимаю что в 11к функций довольно сложно перенести сразу. Но работа над списками по-моему основа

Dmitry
31.08.2016
18:51:21
А является ли c# 3.0 дсл для c# 2.0 потому что там есть linq?

То есть ты хочешь сказать что elixir просто dsl для erlang?

Andrey
31.08.2016
18:51:56
А зачем их переносить, байткод эликсира эквивалетнтен байткоду эрланга

Google
Dmitriy
31.08.2016
18:53:09
А зачем их переносить, байткод эликсира эквивалетнтен байткоду эрланга
Ну может синтастически или в доках хотя бы отобразить. Для новичков то не сразу ясно что есть в языке

Я не особо критикую, просто вот такая неудобность возникла.

Andrey
31.08.2016
18:54:45
Ну тат :erlang и сразу понятно, что вызывается код из написанный на эрланге

Can
31.08.2016
18:55:53
Это вроде как везде написано нормально

Dmitriy
31.08.2016
18:56:13
Ок, я дурак, не посмотрел везде

Can
31.08.2016
18:56:36
Тут человек только начал учить и столкнулся с тем, что вызывается эрланг и внезапно подумал, что изменений то и не так много и что используется код на эрланг

И типа подумал зачем вообще тогда эликсир

Посмотри просто исходники какого-нибудь проекта и убедись, что все ок и не так часто это и используется) А где используется, там все ок

Чаще всего вызов эрланг кода это либы, которые написаны для эрланга

Andrey
31.08.2016
18:59:43
Вот пример обёртки над эрланговской библиотекой https://github.com/manukall/feeder_ex

Can
31.08.2016
19:00:34
Ага

Оберток много

пишется

Google
Dmitriy
31.08.2016
19:02:28
Ну почему то filter сделали в elixir, а prefix нет. Какой смысл в этом

Dmitry
31.08.2016
19:03:49
Потому что в filter субъект был не первым аргументом

Ну и есть)

А в elixir субъект всегда первым элементом

Потому что есть пайп

Andrey
31.08.2016
19:04:20
Да и реализации различаются я думаю

Dmitry
31.08.2016
19:04:20
Которого нету в эрланг

Только где ты нашёл filter?

Dmitriy
31.08.2016
19:06:22
Dmitry
31.08.2016
19:06:38
эт не тот filter

Andrey
31.08.2016
19:06:46
Я не знаю как там в эрланге, но в эликсире не обзятельно должен быть список, а любой объект, который реализует протокол enumerable

* любой тип

Так будет вернее

Dmitry ?
31.08.2016
19:25:59
Блин, на мой взгляд наоборот это вообще замечательно, что все ерланговские штуки можно вот так просто использовать. Многим другим языкам о таком только мечтать

В Java (особенно в Kotlin) и .Net мире схожий уровень интероперабельности, но и там часто не так лаконично выглядит

Кстати, а есть еще какие-то более-менее популярные языки поверх ерланг машины?

Andrey
31.08.2016
19:52:32
Какой-то диалект лиспа был

Dmitry
31.08.2016
20:34:15
Всё я разобрался в либе, протестил, действительно никаких аппов запускать не надо, и так работает. Для тех кто хотел чтобы я "причесал" https://github.com/Virviil/screamer/

Да, кстати код с crontab интервалами уже работает, надо чуть допилить тесты/доки и залить на хекс. Но поиграть можно тут: https://github.com/Virviil/cronider

Google
Константин
01.09.2016
01:47:26
Они засунули это все в 13 пункт офф документации, естественно новички этого не видят и не понимают

Andrey ?
01.09.2016
09:44:54
Про это же на главной написано

В самом низу

Dmitry
01.09.2016
11:39:57
На самом деле на сколько оверхед от враперинга методов? Потому что если нету - то все методы надо врапнуть хотя бы для человеческой документации

Потому что iex>h :lists выдаёт что эрланговская документация не совместима

Serhij
01.09.2016
13:26:33
За счет макросов можно избавится от оверхеда вложенного вызова функции (если инлайнить)

Alex
01.09.2016
13:35:54
Привет! Мы тут записали пробный выпуск подкаста про Elixir/Erlang. Хотелось бы услышать ваши отзывы :slightly_smiling_face: https://soundcloud.com/alex-troush/lucheedstvo

Dmitry
01.09.2016
13:41:20
В elixir stdlib врапперы не через макросы

Dmitry
01.09.2016
13:41:39
Я не знаю почему, но возможно Жозе что-то знает...

Evgen
01.09.2016
14:24:00
https://twitter.com/subhashthehack/status/771341864746229760

https://twitter.com/dorian_escplan/status/771346500978876417

Alexey
01.09.2016
16:26:04
https://twitter.com/subhashthehack/status/771341864746229760
А записи выступления нет?

Taras ?
01.09.2016
16:54:09
https://tkowal.wordpress.com/2016/04/23/nested-preload-in-ecto/ круто)

Andrey
01.09.2016
17:33:01
Может он и не задумывался об этом

Жду с нетерпением записи этих докладов, судя по твиттеру там есть много интересного

Google
Evgen
01.09.2016
19:37:13
А записи выступления нет?
Нет пока только выступают. Возможно выложат попозже. Трудно сказать.

Yusup
01.09.2016
20:24:20
кто подскажет, можно ли в эликсире/эрланге работать с выводом команды, которая еще не завершилась? к примеру, System.cmd запускает команду и возвращает вывод и код ошибки. но дело в том, что System.cmd дожидается окончания команды и только после этого возвращает результат. есть ли способ работать с выводом команды, которая еще не завершилась? может быть можно использовать параметр into, указав какую-нибудь стриму?

в общем, ищу аналог https://nodejs.org/dist/latest-v6.x/docs/api/child_process.html#child_process_child_process_spawn_command_args_options

Andrey
01.09.2016
20:25:26
Очевидно же, что да

Yusup
01.09.2016
20:28:31
Что да? С помощью into?

Andrey
01.09.2016
20:47:49
" есть ли способ работать с выводом команды, которая еще не завершилась? " - что ты под этим имеешь в виду?

Твой пример на nodejs всего лишь стартует новый процесс и вешает на него коллбеки, если ты хочешь того же, то можешь использовать Task.async

Dmitry ?
01.09.2016
20:54:28
Так? http://stackoverflow.com/questions/15831137/how-to-continuously-show-os-command-output-in-erlang

Andrey
01.09.2016
21:37:10
Да и к тому же Stream всего-лишь применяет накопленные функции разом к каждому элементу

Dmitry
01.09.2016
21:45:57
Помоему для этого есть порты

Admin
ERROR: S client not available

Dmitry
01.09.2016
21:45:59
Ports

Dmitriy
01.09.2016
22:11:02
Подкскажите. А вот такой апи в коде это норм? ` iex(56)> Integer.parse("22", 2) :error iex(57)> Integer.parse("11", 2) {3, ""} ` Как с этим лучше работать? Есть что-то лучшее чем if statement пихать?

Aldar
01.09.2016
22:12:07
pattern matching?

Andrey
01.09.2016
22:12:09
{:error, "причина"} и {:ok, 3}

Dmitriy
01.09.2016
22:13:19
отдает он не tuple

Andrey
01.09.2016
22:14:17
@Virviil ты же слушал подкаст, там говорилось про обработку ошибок и что кортежи - это лучшее решение, я по поводу твоего модуля скримера)

Dmitry
01.09.2016
22:14:49
Не, это не я)

Аа, ты про модуль, ну да

Я думал ты перепутал Дмитриев))

Google
Dmitry
01.09.2016
22:16:02
Кортежи в коде лучшее, но в макросах всё не так

В макросах наоборот очень часто испольхуются raise, throw и catch

Dmitriy
01.09.2016
22:17:51
` iex(64)> {:error, "lol"} = Integer.parse("s10s", 2) ** (MatchError) no match of right hand side value: :error ` Может я не догоняю что-то. И паттерн матчинг не понимаю. Все таки по типу матчится то. А тип просто атом

Dmitry
01.09.2016
22:18:16
{:error, lol} = Integer.parse("s10s", 2)

Вот так надо

Dmitriy
01.09.2016
22:18:48
Да все равно тоже самое

Andrey
01.09.2016
22:18:48
Я открыл исходники и там какая-то дичь

:error -> todo num -> todo

Dmitry
01.09.2016
22:19:36
Да всё верно, там через жопу

:error -> todo num -> todo

Andrey
01.09.2016
22:20:00
{num, string} -> вот так даже для успешного случая

Dmitry
01.09.2016
22:20:11
надо так case Integer.parse(...) do :error -> косяк num -> num end

Andrey
01.09.2016
22:21:06
Ещё и в try обернуть хД

Dmitry
01.09.2016
22:21:40
да, верно

Через жопку какую то сделано

Хотя хз

Может эта строчка и нужна, но ошибка по идее должна быть норм

Dmitriy
01.09.2016
22:23:44
Спасибо

Dmitry
01.09.2016
22:24:20
Так не сработает

Dmitriy
01.09.2016
22:24:26
Я еще с bitwise макросов прифигел. Почему-то не через функции сделали.

Dmitry
01.09.2016
22:24:45
case Integer.parse(...) do :error -> косяк {num, _} -> num end вот так

Dmitriy
01.09.2016
22:25:52
case Integer.parse(...) do :error -> косяк {num, _} -> num end вот так
да да, я понял. я про вообще что красиво не получится)

Страница 100 из 1045