
Alexey
02.05.2017
15:42:10
если нужны поддерживаемые либы

Sergey
02.05.2017
15:42:23
протоколы когда он внедрял на кложу имхо смотрел

Max
02.05.2017
15:42:27
0 — это не индекс, а offset от начала памяти

Google

Max
02.05.2017
15:42:50
т.е. в C, C++ — это норма
в асемблере там

Alexey
02.05.2017
15:43:10

Max
02.05.2017
15:43:25
если у тебя нет арифметики с адресами памяти, никакого 0 быть не может в принципе
предметы считаются с 1

Alexey
02.05.2017
15:43:45
тут дело в том как привыкло большинство разработчиков

Max
02.05.2017
15:43:59
ну вот в ерланг-мире привыкло с 1
и всё сделано так, что надо с 1 считать и не париться
но нет же, сделаем по-другому, чтобы вы потом поебались с рекордами

anton
02.05.2017
15:44:36

Max
02.05.2017
15:44:39
кортеж — это не массив памяти
кортеж — 1, 2, 3, 4

Google

Max
02.05.2017
15:45:22
нулевого элемента в кортеже не бывает
так же как нулевого аргумента в функции
список тоже не имеет нулевого элемента
а массив байтов в памяти имеет нулевой оффсет от начала
потому что это не список и не кортеж

Alexey
02.05.2017
15:47:35
абсолютное большинство языков работает с 0, поэтому это привычнее большинству. Вот и сделали с 0
в хаскеле теже кортежи с 0

Max
02.05.2017
15:48:11
язык делается не для абсолютного большинства
поэтому нет смысла делать другой хаскель на той же платформе, где будет с 1

Sergey
02.05.2017
15:49:30
Правильно, хипсторы нужны, а старые пердуны кто на эрланге пишет или писал, да нафиг надо

Marat
02.05.2017
15:49:36

Dmitry
02.05.2017
15:53:09
Вот уже несколько дней смотрю на синтаксис эликсира... и не вижу больших преимуществ по сравнению с эрлангом...

Alexey
02.05.2017
15:53:38
это когда знаешь эрланг)

anton
02.05.2017
15:53:46
в сишарпе с кортежами порешали иначе :) tuple.Item1 и tuple.Item2

Max
02.05.2017
15:54:05

anton
02.05.2017
15:54:20
з.ы но ведь ты можешь макрОсов наделать и жить как будто в ерланге?
но чужой код читать - беситься

Max
02.05.2017
15:55:06
макросы убоги по своей сути

Google

Max
02.05.2017
15:55:13
кододегенерация — плохо

Vadim
02.05.2017
15:55:27

anton
02.05.2017
15:56:13

Sergey
02.05.2017
15:56:32
Сань привет

Dmitry
02.05.2017
15:57:06
Ну код на эликсире понятен. Просто смысл перехода с Эрланга на эликсир туманен. С руби, наверно, есть смысл. Я на руби не писал...

anton
02.05.2017
15:57:14

Max
02.05.2017
15:57:28

Maxim
02.05.2017
15:58:48
Много где библиотек много
Лол

Dmitry
02.05.2017
15:59:09

Maxim
02.05.2017
15:59:17
Скалка, го

Max
02.05.2017
15:59:35

Max
02.05.2017
15:59:43
смотришь — последний коммит года 3 назад

Sergey
02.05.2017
16:00:28
а оно работает?

Max
02.05.2017
16:00:35
не всегда

Dmitry
02.05.2017
16:02:49
Ну в проектах, где я работал, вообще сторонние библиотеки не жаловали...поэтому я не очень в курсе как все работает. Просто видел очень много либ

Rafkat
02.05.2017
16:29:46

عاصم بن حارث
02.05.2017
16:32:05

Max
02.05.2017
16:32:31
что тут не так?
def rd2st(record) do
[{:__struct__, __MODULE__}, metric(record)] |> Enum.into(%{})
end
(CompileError) lib/core/session/metric.ex: invalid quoted expression: %{}

Google

Max
02.05.2017
16:32:53
вот за это я и не люблю макросы
потому что хуй знает что

عاصم بن حارث
02.05.2017
16:37:47

Max
02.05.2017
16:38:00
по идее рекорд вернёт
блядская блядь
если в рекорде есть поле мап, например %{}, то ошибка происходит
если вместо него nil вставить, то всё ок
это сука как надо было язык сделать, что он на таком срубается?
кошмар какой-то

Admin
ERROR: S client not available

Pavel
02.05.2017
16:41:58
страждущие и алчущие, прийдите в erlang и он успокоит вас

Dmitry
02.05.2017
16:42:43
erlang другим бесит )

Alexey
02.05.2017
16:44:40
так под капотом там :maps
из эрланга

Max
02.05.2017
16:44:59
так, убрал мап из дефолтных параметров в определении рекорда, всё стало компилиться
как такое вообще возможно?

عاصم بن حارث
02.05.2017
16:45:30

Max
02.05.2017
16:45:47
[fieldname: nil] – ok
[fieldname: %{}] - error

عاصم بن حارث
02.05.2017
16:47:05
[{:__struct__, __MODULE__}, {:b, %{}}] |> Enum.into(%{})
рез-тат: %{__struct__: nil, b: %{}}

Google

Max
02.05.2017
16:50:11
https://gist.github.com/anonymous/52bfdeb1e96b6665f7faa055c8b2615c
вот
попробуй скомпилить
потом замени в defrecord и defstruct %{} на nil

Alexey
02.05.2017
17:13:42
тут скорее всего проблема в том, что он не знает чего ожидать от record
если ты сделаешь metric() и передашь туда цельную структуру то все ок будет
т.е. если
def rd2st(record) do
[{:__struct__, __MODULE__} | metric(auth_info: %{})] |> Enum.into(%{})
end
и это только с %{}, все другие структуры ок будут, например []

Max
02.05.2017
17:17:28
в слаке пишут, что похоже на компилятора ошибку, сказали тикет завести
https://github.com/elixir-lang/elixir/issues/6060
завёл

عاصم بن حارث
02.05.2017
17:43:48
завёл
погоди, а "сопоставить с образцом" для rd2st чтобы подсказать "что передаем" и в теле кое-что поправить?
def rd2st(record = %TT.Metric{}) do
[{:__struct__, __MODULE__} | record] |> Enum.into(%{})
end

Max
02.05.2017
17:49:34

عاصم بن حارث
02.05.2017
17:58:49
Это мелочи
замени ф-ю и скомпиль, потом и о мелочах поговорим.

Max
02.05.2017
18:00:53

عاصم بن حارث
02.05.2017
18:02:42
ок
просто, на ум пришло... см. выше. ф-ю

Max
02.05.2017
18:05:02

عاصم بن حارث
02.05.2017
18:08:04
добро. я не настаиваю ))) обычно прокручиваю все варианты. что пришло на ум, то и отписал ))) Детально твою задачу не прорабатывал, раз посмотрел, отвлекся на свое, два посмотрел и, что в мосК влетело, то и выдал )))) А тикет... тикет это хорошо. Jосе повертит со всех сторон, полагаю.

anton
02.05.2017
18:11:22

عاصم بن حارث
02.05.2017
18:11:57
?