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

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

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

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

13 ответов

9 просмотров

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

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

Кажется, с 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 подключения, например) вынести в рекорд, чтобы быстрее искать глазами в стектрейсте

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

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

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
Вопрос по WIN32: Насколько я понимаю то все функции win32 привязаны к объектам операционной системы. Например консоль, файл, кисть, окна итд. Следовательно функции win32 упра...
Tommy Vercetti
6
подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
кто-то пользуется компонентами rx ? как их лучше ставить, через OPM? (lazarus)
Iluha Companets
15
Hello, can I install macOS and run flutter on a virtual machine? Is it possible to print for iphone?
Mazones
11
Дороу! У кого-нибудь есть в загашнике проверенная функция экранирования, аналог re.escape в Python? Из доки: » Escape all the characters in pattern except ASCII letters and n...
Daniil Smolyakov
9
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
есть тут кто-то , кто только начал изучать си? если проходите курс на степике или как-то сами изучаете, пишите, может, скооперируемся?..
Eule
25
В смысле более затратная? Общая стоимость владения лошадью меньше, чем автомобиля. В среднем.
Sergej R
10
Народ поскажите хороший туториал как написать программу-службу Лазарем?
Alexander
6
Карта сайта