• 1000 Каков эффективный и обычный способ сделать это?
Я мог бы создать функцию, которая всегда возвращает один и тот же набор:
my_set() -> sets:from_list(["a", "b", "c"]).
Будет ли это оптимизировать виртуальная машина или код для построения набор будет запускаться каждый раз заново? Я подозреваю, что набор просто получит GCd.
В этом случае должен ли я кэшировать набор в словаре процесса, используя что-то уникальное, например, модуль md5?
Key = proplists:get_value(md5, module_info()), put(Key, my_set())
Другое решение - заставить вызывающего абонента вызвать функцию init
, чтобы вернуть непрозрачный кусок состояния, а затем передать это состояние каждой функции в модуле.