
Dmitry
17.03.2017
16:59:09
Если такой атом не валидный в эрланге - надо его в кавычки
: улучшает читабельность
Если нет его, не понятно это переменная или просто атом

Alexey
17.03.2017
17:00:09
и вот в ерланг его надо '$end_of_table' писать
а в эликсире к нему еще слева двоеточие добавить

Google

Alexey
17.03.2017
17:00:53
ну. я не исключаю тот факт, что я тупой. но когда я переписывал свой код на ерланге в такой же на эликсир

Rafael
17.03.2017
17:01:14

Alexey
17.03.2017
17:01:32
то я далеко не с первого раза его смог написать так, чтобы он был именно атомом и соответствовал именно тому, чему должен быть в dets чтоб означать конец таблицы
ну а раз в эликсире сделали переменную с маленькой буквы, то пожалуйста. думайте теперь, как ее отличать от атома. и как переменную от функции.

Rafael
17.03.2017
17:03:23

Alexey
17.03.2017
17:03:36
адаптация моего мозга к атомам с : слева, потребовала примерно неделю

Rafael
17.03.2017
17:03:52
потому что нет привычки, что MaVal это переменная, а не какой-нибудь класс

Alexey
17.03.2017
17:04:31
зато таким как мне легче входить в язык
не. ну вот честно. сейчас. после работы с кодом эликсир, мне код на ерланге теперь не кажется каким-то непонятным или нелогичным. наоборот - понятнее и логичнее. и неоднозначностей меньше.
простой, как топор

Rafael
17.03.2017
17:05:44

Alexey
17.03.2017
17:05:50
название модуля

Google

Rafael
17.03.2017
17:06:06

Alexey
17.03.2017
17:08:26
он не с буквы, а с :

Rafael
17.03.2017
17:08:47

Alexey
17.03.2017
17:09:32
хм.. значит название модуля - тоже атом
видишь сколько тут годноты!

Rafael
17.03.2017
17:09:47
есть ли разница между == и === для не числовых типов?

Alexey
17.03.2017
17:10:03
а зачем тебе вот эти вот безчеловечные эксперименты?

Rafael
17.03.2017
17:10:21

Alexey
17.03.2017
17:10:28
может кто поправит

Rafael
17.03.2017
17:10:35

Alexey
17.03.2017
17:11:10
да. сегодня говорили про "даже если модуль еще не объявлен". будет всего лишь варнинг

Rafael
17.03.2017
17:11:19

Alexey
17.03.2017
17:11:56
ага. в германию не возьмут

shadowjack
17.03.2017
17:16:21

Rafael
17.03.2017
17:17:52
ассоциативные массивы построены на хештаблицах или на деревьях?

Alexey
17.03.2017
17:20:08
Это просто атом
но при это можно вот так вот:
iex(1)> Module.concat(["ModuleName"])
ModuleName

Dmitry
17.03.2017
17:21:42

Rafael
17.03.2017
17:21:50
map
%{}

Google

Alexey
17.03.2017
17:21:58

Rafael
17.03.2017
17:22:34
%{}
к ним можно же добавлять новое значение как-то?

shadowjack
17.03.2017
17:22:36

Dmitry
17.03.2017
17:23:07

shadowjack
17.03.2017
17:23:08

Rafael
17.03.2017
17:23:31
но ведь это же дорого выходит
типо копирование всего обекта с добавлением пары ключ-значение

Dmitry
17.03.2017
17:24:44
Короче я не уверен в правильности того что я сказал, но insert и lookup за logN

Alexey
17.03.2017
17:24:54

Rafael
17.03.2017
17:25:02

Dmitry
17.03.2017
17:25:35

Dmitry
17.03.2017
17:26:12
Тут вообще ничего не копируется

Rafael
17.03.2017
17:27:05
а все, все
туплю
сорян, попутал с кортежами
но вопрос про добавление новой пары ключ-значение все еще актуален

shadowjack
17.03.2017
17:28:16

Dmitry
17.03.2017
17:29:39
a = %{}
a = %{a | foo: :bar}

Google

Alexey
17.03.2017
17:29:58
фу таким быть

Rafael
17.03.2017
17:29:59

Alexey
17.03.2017
17:30:43
мапа это то, что %{}. без этого - оно не мапа

shadowjack
17.03.2017
17:31:09
А нет не отличается

Анастасия
17.03.2017
17:32:52

Dmitry
17.03.2017
17:33:03
Чтобы вставить - Map.put

shadowjack
17.03.2017
17:33:07
Короче если атом имеет форму :"Elixir.Aaaaa" то iex его выводит как Aaaaa

Dmitry
17.03.2017
17:33:23
Я что-то протупил)

shadowjack
17.03.2017
17:33:25
Правда здорово?

Admin
ERROR: S client not available

Alexey
17.03.2017
17:33:52
iex(3)> "Elixir.ModuleName" |> String.to_atom()
ModuleName
пдзц. что мы теперь будем делать с этими знаниями?
https://www.youtube.com/watch?v=zqEfa1S4sb0

Rafael
17.03.2017
17:37:59

Alexey
17.03.2017
17:38:14
еще можно Map.merge

Dmitry
17.03.2017
17:38:43
Так что норм

Alexey
17.03.2017
17:39:03
ну то есть атом - это атом. он начинается с :
при этом, с большой буквы - это тоже атом
нужно больше логики!
я вот убежден, что надо раскуривать метапрограммирование и прочий макросинг.
иначе, если программировать на эликсире так же, как на ерланге, то так и будешь ворчать, типа почему тут двоеточие, а f.() и прочее

Google

shadowjack
17.03.2017
17:43:42
Меня тут спрашивали про :do

Alexey
17.03.2017
17:44:29
не do: а именно :do?

shadowjack
17.03.2017
17:44:36
Отвечаю: if true, [{:do, 1}]
Да

Alexey
17.03.2017
17:45:13
а. ну тут да. логично. потом они скобки выкинули

shadowjack
17.03.2017
17:45:55
Да, это то же самое что if true, do: 1

Alexey
17.03.2017
17:46:37

shadowjack
17.03.2017
17:47:58
Обычно конечно нет, но можно.

Alexey
17.03.2017
17:48:24
я вот видел
if blabla, do: "одно", else: "другое"
if в одну строку - это как аналог
a = (условие) ? "одно" : "другое"

shadowjack
17.03.2017
17:49:58

Alexey
17.03.2017
17:50:34
ну. я к тому, что не часто так пишу. вообще в коде if не часто
мы как-то глядели, во что компиляется if. занятно

shadowjack
17.03.2017
17:51:26
Вот лучше скажи как записать if true do
x = 1
x*2
end в одну строку

Alexey
17.03.2017
17:52:22
непонятный пример. плз, поближе к реальности. мне так будет легче воспринять

shadowjack
17.03.2017
17:53:42
if a > 0 do
t = a*a
t + a
end
Ну любой блок из нескольких выражений в if-e

Alexey
17.03.2017
17:54:22
а. ну то есть смысла в двух операциях нет. тут речь о том, что их в принципе должно быть две?

shadowjack
17.03.2017
17:54:34
Да
Про синтаксис же трем

Alexey
17.03.2017
17:54:44
ну вот в ерланге бы ты запятую поставил )
а тут скорее в pipe