00:20 pid - process id 01:11 send отправка сообщения процессу(самому себе) 01:16 flush проверка пришедшего сообщения 01:20 запуск нового процесса, отправка сообщения, анонимная функция 02:50 port пример открытия TCP и UDP сокетов 04:26 reference 05:26 function 05:50 что такое функция высшего порядка 06:56 сохранение именнованной функции в переменную (через &) 07:50 передача функции как аргумент-значение в другую функцию (apply_twice) 09:40 Более реальный пример передачи функции как значения (Enum.filter) 11:12 Еще один практический пример передачи функции Enum.map() 12:18 Особенность Эликсира - возможность сравнивать значения любых типов 14:05 порядок сравнения разных типов 14:20 пример сортировки любых значений 15:25 Enum.sort сортировка словарей(Map) с ключами атомами(выход на Keyword list) 15:44 Исследуем как работает Enum.sort с Map. превращение Map в список кортежей
@YuriZhloba2 ай бұрын
Спасибо за таймкоды )
@ThorenSky2 ай бұрын
Правильно ли я понимаю, что при присвоении именованной функции в переменную через амперсанд (`&`) под копотом происходит создание анонимной функции(т.е. лямбды). Которая по сути и оборачивает именованную функцию, которую мы дальше можем присваивать в переменную и передавать как значение?
@ThorenSky2 ай бұрын
Пример есть анонимная функция записанная в полном синтаксисе iex> my_func = fn a, b -> a my_func.(1, 2) true убеждаемся что операторы - это тоже функции: iex> h Kernel.
@YuriZhloba2 ай бұрын
Нет, это лишнее. Переменная указывает на какую-то область памяти, где хранится функция. И тут не важно, анонимная она или именованая. Нет необходимости заворачивать именованую функцию в анонимную.
@YuriZhloba2 ай бұрын
можно и без переменной обойтись iex(2)> (&
@ThorenSky2 ай бұрын
@@YuriZhloba Благодарю за ответ. Да верно это же можно проверить через iex iex> f = fn v -> IO.puts(v) end #Function iex> f = &IO.puts/1 &IO.puts/1 Как видно во втором случае выводится нечто напоминающее скорее адрес именованной функции но не подобное тому что создаётся для лямбды