185 похожих чатов

Есть ли способ подставить атом в вызов функции не напрямую,

а через переменную? Типа такого:

Вместо:
my_function(atom1, atom2)
Писать:
A1 = atom1, A2 = atom2, my_function(A1, A2)

13 ответов

28 просмотров

Что ломается, если сделать ровно так, как ты предложил?

Δημήτηρ- Автор вопроса

Кажется, с record_info такое не прокатит, потому что она compile time. Видимо, надо другой вариант просто. А вообще задача была такая: динамически извлекать из рекорда элементы, имея на входе атом-имя.

Δημήτηρ
Кажется, с record_info такое не прокатит, потому ч...

ага. Простые гипотезы проще проверять самому (благо для компиляции и запуска нынче не нужно записываться в очередь к мейнфрейму за неделю), а в вопросе больше говорить о задаче/проблеме. Тебе нужен record_info(fields, my_record), и с ним либо вычисление номера поля, либо постоение проплиста/мапы

Δημήτηρ- Автор вопроса
Δημήτηρ
Кажется, с record_info такое не прокатит, потому ч...

вижу три варианта: 1) использовать maps вместо рекордов; 2) использовать индексы вместо атомов; 3) использовать record_info fields

Δημήτηρ- Автор вопроса
Sergei
вижу три варианта: 1) использовать maps вместо рек...

От рекордов уже не уйти, придется весь модуль для этого переписать. Буду дальше мучить record_info)

Δημήτηρ
От рекордов уже не уйти, придется весь модуль для ...

так говорите, будто у вас там 10 тысяч строк

Δημήτηρ- Автор вопроса
Sergei
так говорите, будто у вас там 10 тысяч строк

Да нет, модуль маленький. Просто не вижу пока повода отказаться доделать на record_info.

Δημήτηρ
Да нет, модуль маленький. Просто не вижу пока пово...

всё правильно. нужно доделать, потом сделать второй вариант и написать бэнч

Sergei
вижу три варианта: 1) использовать maps вместо рек...

> maps вместо рекордов отличный путь к провалу в стиле «перепутал два стейта местами, и сломалось очень неявно через 5 запросов, два часа дебажил»

Δημήτηρ
От рекордов уже не уйти, придется весь модуль для ...

чё там мучить то, сделай поиск по чату R2M - однострочкик преобразования рекорда в мапу, из неё бери всё что хочешь по ключу

Danil Zagoskin
> maps вместо рекордов отличный путь к провалу в...

можно сделать такое: {:my_tag, map()} будет похоже на эликсировский struct, только лучше. И стейты не перепутаешь )

Юрий Жлоба
можно сделать такое: {:my_tag, map()} будет похоже...

что в свою очередь будет совместимо с -record(my_tag, {fields = #{}}). А потом можно наиболее нужные в стектрейсе поля (id подключения, например) вынести в рекорд, чтобы быстрее искать глазами в стектрейсте

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта