
Dmitry
17.03.2017
21:12:08
В 99,9% случаев у них following = false по дефолту

Alexey
17.03.2017
21:12:26
добавь туда еще одно поле - какой-нибудь TTL

Dmitry
17.03.2017
21:13:49
Если оно сильно различается - отправлю вперёд following
Если нет - запихну в конец

Google

Dmitry
17.03.2017
21:14:52
Вот ещё пример - пишу в монгу длинный лист, в одной транзакции по 100 сообщений
def new_from_ids(id_list, blob_size \\ 100)
Если сильно припрёт - сделаю по 1000 или по 50 сообщений
и ничего тут не изменится

Alexey
17.03.2017
21:15:42
а. во. вроде что-то нащупал
определяешь их две
def test_fn(:atom1, b \\ 2, c \\ 3), do: a + b + c
def test_fn(:atom2, b \\ 2, c \\ 3), do: a + b + c
в чем моя ошибка?

Dmitry
17.03.2017
21:16:18
Так нельзя
Упадёт

Alexey
17.03.2017
21:16:22
почему?
оно даже не падает. не соберет

Dmitry
17.03.2017
21:17:51
Надо так
def test_fn(atom, b \\ 2, c \\ 3)
def test_fn(:atom1, b, c), do: ....
def test_fn(:atom2, b, c), do: ....

Alexey
17.03.2017
21:18:21
ну и тогда хер цена твоим \\

Google

Dmitry
17.03.2017
21:18:32
И это потому что макрос разворачивает в то что ты руками написал

Alexey
17.03.2017
21:18:40
ты уж извини )

Dmitry
17.03.2017
21:19:03
Хз, мне норм)

Alexey
17.03.2017
21:19:04
не. ну я вот обязан чтоли знать, кто там и во што разворачивает )

Dmitry
17.03.2017
21:19:22

Alexey
17.03.2017
21:19:26
вот уже второй на сегодня пример. первый - арити перепутали. второй - \\ не правильно запилили
ну вот он так и пишет:
definitions with multiple clauses and default values require a function head. Instead of:
def foo(:first_clause, b \\ :default) do ... end
def foo(:second_clause, b) do ... end
one should write:
def foo(a, b \\ :default)
def foo(:first_clause, b) do ... end
def foo(:second_clause, b) do ... end

Dmitry
17.03.2017
21:20:12
Ну дык то что я и написал)

Alexey
17.03.2017
21:20:37
просто, если мне регламентируется, что у меня есть чудесный инструмент сокращения кода, то я очень хочу так и писать*. например, у тебя фанки, которые разные команды по атому матчат и выполняют
ну вот согласись, че бы их не записать так, как я предложил?
вроде оно логично. если не знать о том, что оно не скомпилируется из за особенностей эликсира
так же как и фанки с разным арити в перемежку
ну вот не очевидно, что так нельзя, хоть тресни. вот именно вот эти подковерные вещи эликсира местами могут напрягать.

Dmitry
17.03.2017
21:23:15
С одной стороны оно конечно логично. Но с другой - вот ты знаешь что такая функция разворачивается в 3. Значит 2 такие функции развернутся в 6, а если руками писать - надо всего 4.
Сразу заставляет задуматься , что "логично" - не совсем
Ну и конечно на такие грабли можно наступить 1 раз и все. Больше не наступишь

Alexey
17.03.2017
21:24:22
ну вот оно вроде упрощение. если это в доке написать, которая типа hello world. а если писать вещи реального мира, то оказывается совсем не так и красиво
т.е. тебе как надо было 3 функции написать разных, ты их и пишешь. сэкономил по сути только на тексте тела первой функции )

Dmitry
17.03.2017
21:26:11
Впрочем, если почитать metaprogramming elixir - сразу легче становится

Alexey
17.03.2017
21:26:40
или не. погоди. в тексте первой то ты все равно должен что-то написать.

Google

Dmitry
17.03.2017
21:26:44
А его мало кто читает...

Alexander
17.03.2017
21:26:59
отличная вообще книжка, ушла за неделю

Dmitry
17.03.2017
21:27:22
Это блин самое неочевидное

Alexey
17.03.2017
21:27:39
вот метапрограммирование у меня в очереди на закачку ))

Admin
ERROR: S client not available

Alexey
17.03.2017
21:27:41

Can
17.03.2017
21:27:41
Всем пятничного настроения
Замутили бота который ищет по фотке похожих порнокюактрис
@SimfaceBot

Alexey
17.03.2017
21:28:09
воо! годнота

Dmitry
17.03.2017
21:28:11

Dmitry
17.03.2017
21:28:37
Скиньте фотку какую на потестить бота

Alexey
17.03.2017
21:28:50
так я не про загрузку на диск. а про загрузку в голову
везет тебе. я загрузил фото - и ничего не нашло

Alexander
17.03.2017
21:30:52
> @bolshakov_av
эликсир взял и перемешал их. и не чухнул даже
def fnnn(1), do: "1"
def fnnn(a, b), do: a / b
def fnnn(2), do: "2"
warning: clauses for the same def should be grouped together, def fnnn/1 was previously defined (length_converter.ex:2)

Can
17.03.2017
21:31:05
он лицо сначала ищет походу

Alexey
17.03.2017
21:32:11

Alexander
17.03.2017
21:32:19
работают

Google

Alexey
17.03.2017
21:32:52
вот хорошо тут. вроде была проблема. а поковыряли - и нет ее
а на warning новичек может и забить
вот жаль, что с \\ меня компилятор не понимает и мнение мое не разделяет

Dmitry
17.03.2017
21:34:39
Можно переписать теоретически
Только вроде как когда понимаешь что это макрос - все логично становится

Alexander
17.03.2017
21:35:49
> макрос
А как оно развернется?