
Alexander
19.03.2017
12:43:34
filename: filename, canvas: %Canvas{} = canvas
это дешугарится в
[{:filename, filename}, {:canvas, %Canvas{}=canvas}]
и потом матчится: должен вернуться такой вот список с такими вот туплами, и если это он и есть — то привязываем filename и canvas переменные к тому, что там передали

Rafael
19.03.2017
12:44:08
всегда хотел, чтобы можно было ручками указывать какому аргументу что присвоить

Google

Alexander
19.03.2017
12:45:08
э… в смысле? я то ли не понял, то ли плохо объяснил

Dmitry
19.03.2017
12:45:33

Rafael
19.03.2017
12:46:05
canvas: %Canvas{} = canvas, filename: filename если изменю порядок подачи аргументов в функцию, то ничего сломаться же не должно?

Dmitry
19.03.2017
12:46:18
Все сломается

Rafael
19.03.2017
12:46:24

Dmitry
19.03.2017
12:47:09
Вообще говоря зависит от реализации, но ставлю на то, что автор твоей либы не умеет готовить это правильно и все поломается
Потому что 90% либ в Хексе с такой фигней
Впрочем у тебя есть 10%...

Rafael
19.03.2017
12:48:30

Dmitry
19.03.2017
12:49:05
Скажу тебе по секрету что такая штука есть в питоне - без матчинга конечно
Есть в C#
Начиная я 4 версии языка
Так что я не понимаю на каких языках ты пишеш)

Google

Rafael
19.03.2017
12:50:35
а, на питоне тоже писал года 2 назад, но в последнее время он меня сильно бесит, из-за того, что нам кучу дз дают писать на нем, используя всякие NumPy и прочую лабуду для машинистов, статистов

shadowjack
19.03.2017
12:54:10

Dmitry
19.03.2017
13:01:23
def write_user([name: name, age: age]) do
IO.puts "User is #{name} aged #{age}"
end
def write_user_good(options) do
name = Keyword.get(options, :name)
age = Keyword.get(options, :age)
IO.puts "User is #{name} aged #{age}"
end
iex(1)> Playground.write_user(name: "Virviil", age: 25)
User is Virviil aged 25
:ok
iex(2)> Playground.write_user(age: 25, name: )
iex(3)> Playground.write_user(age: 25, name: "Virviil")
** (FunctionClauseError) no function clause matching in Playground.write_user/1
(playground) lib/playground.ex:22: Playground.write_user([age: 25, name: "Virviil"])
iex(3)> Playground.write_user_good(age: 25, name: "Virviil")
User is Virviil aged 25
:ok
iex(4)> Playground.write_user(name: "Virviil", age: 25)
User is Virviil aged 25
:ok
Это секреты ТОЛЬКО для крутых пацанов

Rafael
19.03.2017
13:39:39
вах-вах-вах

Alexey
19.03.2017
13:47:09
а там уже матчишься в произвольные ключи, в произвольном порядке и количестве.

shadowjack
19.03.2017
14:04:09

Dmitry
19.03.2017
14:06:04
def foo(args), do: _foo(Keyword.get(...), Keyword.get(...), ...)

Taras ?
19.03.2017
14:14:48
У меня нет такого варнинга
warning: the variable "changeset" is unsafe as it has been set inside a case/cond/receive/if/&&/||. Please explicitly return the variable value instead. For example:
case int do
1 -> atom = :one
2 -> atom = :two
end
should be written as
atom =
case int do
1 -> :one
2 -> :two
end
Unsafe variable found at:
web/models/member.ex:89
вот такой например

shadowjack
19.03.2017
14:17:45

Dmitry
19.03.2017
14:19:13
Можно делать структуру
И на каждую функцию - свою структуру

shadowjack
19.03.2017
14:19:28

Dmitry
19.03.2017
14:19:38
Строгая типизация будет

Taras ?
19.03.2017
14:37:44

shadowjack
20.03.2017
08:18:49
Что-то тихо стало...

anton
20.03.2017
08:20:17
я тут :)

Google

Alexander
20.03.2017
08:20:22
Тк у меня все хорошо
Завтра продолжаем проект
Так что держитесь :)

shadowjack
20.03.2017
08:21:33
Есть идеи какое демо-приложение накодить в элексире/фениксе для того чтобы показать работодателю?

Alexey
20.03.2017
08:22:16

Rafael
20.03.2017
08:22:42

shadowjack
20.03.2017
08:22:43
Не ну блог можно и на вордпрессе сделать. Что-нибудь такое с каналами.

Dmitry
20.03.2017
08:23:02
Вот все такие просят - а потом сливаются

Alexey
20.03.2017
08:23:06
блог можно на чём угодно сделать :)

Dmitry
20.03.2017
08:23:10
Твиттер мне так никто и не сделал

anton
20.03.2017
08:24:27

shadowjack
20.03.2017
08:24:30
Могу сделать трансляцию топ 100 российских твиттер-акаунтов в риалтайме. Алгоритм ранжирования у меня уже есть, правда на питоне.

Rail'
20.03.2017
08:24:56

shadowjack
20.03.2017
08:26:32
сделай мое дз
не, во-первых тебе полезнее. Во-вторых, не впечатлит работодателя.

Rafael
20.03.2017
08:28:46

Alexander
20.03.2017
08:30:22

Александр
20.03.2017
08:31:00
последние годы испытываю недостаток какой-то удобной онлайн Базы Знаний/записной книги

Google

Roman
20.03.2017
08:32:22

Александр
20.03.2017
08:32:27
всякие evernote, notes, confluence либо лишком ущербные, либо слишком перегруженные и все неудобные
плюс у всех у них проблемы с группировкой и поиску по датам
то есть, раз в полгода мне нужен какой-то SQL запрос
ни одной системы пока не видел, где можно быстро его найти
сейчас храню в файликах ((

shadowjack
20.03.2017
08:34:18

Александр
20.03.2017
08:35:11
ну как там хранить и искать SQL запросы?
охота прилепить тэг и знать дату

Admin
ERROR: S client not available

Александр
20.03.2017
08:35:51
и быстро искать используя эти данные
плюс набирать типа как в https://workflowy.com
плюс в markdown хранить и редактировать
в общем вот такая идея, не покидает меня уже с год, надо время найти и запилить

shadowjack
20.03.2017
08:37:31

Dmitry
20.03.2017
08:37:43
Git book есть
Коллаборация и маркдаун из коробки , а искать вообще можно гуглом

shadowjack
20.03.2017
08:40:28
https://www.youtube.com/watch?v=kR0CNNm5PlY

Marat
20.03.2017
08:52:05

Google

shadowjack
20.03.2017
09:03:05
Сейчас обнаружил что в конструкторе бинарей (<<>>) при указании размера нельзя использовать константные выражения (типа 8*12), только голые константы. В эрланге было можно насколько я помню.
iex(30)> <<x::size(32)>> <> y = "abcdefgh"
"abcdefgh"
iex(31)> x
1633837924
iex(32)> <<x::size(8*4)>> <> y = "abcdefgh"
** (CompileError) iex:32: size in bitstring expects an integer or a variable as argument, got: :erlang.*(8, 4)
(elixir) src/elixir_bitstring.erl:52: :elixir_bitstring.expand_bit_info/5
(elixir) src/elixir_bitstring.erl:29: :elixir_bitstring.expand_bitstr/4
(elixir) src/elixir_bitstring.erl:10: :elixir_bitstring.expand/3
(elixir) src/elixir_bitstring.erl:20: :elixir_bitstring.expand_bitstr/4
(elixir) src/elixir_bitstring.erl:10: :elixir_bitstring.expand/3
(elixir) expanding macro: Kernel.<>/2
iex:32: (file)

Александр
20.03.2017
09:27:27
можно
только вчера матчил
секунду

Max
20.03.2017
09:27:59
там надо готовый результат подставлять
s = 8*4
потом матчить с s

Александр
20.03.2017
09:28:24
<<":\"", value::binary-size(len), "\";", rslt_rest::binary>> = new_rest
по байтам тут матчу

Max
20.03.2017
09:28:48
он не может наверное считать в этих выражениях

Александр
20.03.2017
09:28:53
ааа
да, с выражениями у меня тоже не работало
а в эранге работает?

Max
20.03.2017
09:29:22
я забыл, как в ерланге матчить сложные выражения
в еликсире проще сделано

Александр
20.03.2017
09:35:48

shadowjack
20.03.2017
09:40:55

Max
20.03.2017
09:41:57
почему дурость?

Dmitry
20.03.2017
09:42:32
есть 2 варика - либо ты подписываешь "магические числа", либо нет
Если да - бери переменную и всё норм