Достаточно часто я встречаюсь со списками опций функций (или более общих списков замещения) формы {foo->value,...}
. Это приводит к ошибкам, когда foo уже имеет значение в $Context. Один очевидный способ предотвратить это - использовать вместо символа строку "foo": {"foo"->value,...}
. Это работает, но, похоже, я нарисовал некоторые опытные LISP, которых я знаю, которые наказывают меня за объединение символов и строк и говорят мне использовать встроенные цитаты.
В то время как, безусловно, можно написать код, который позволяет избежать конфликтов без использования строк, часто кажется, что это больше проблем, чем того стоит. С другой стороны, я не видел слишком много примеров правил замены типа {"string"->value}
. Итак, вопрос для вас - это приемлемый шаблон использования? Существуют ли случаи, когда это особенно уместно?.. Куда его следует избегать?..