【发布时间】:2011-03-02 12:57:14
【问题描述】:
我发现自己经常处理{foo->value,...} 形式的功能选项列表(或更一般的替换列表)。当 foo 在 $Context 中已经有值时,这会导致错误。防止这种情况的一种明显方法是使用字符串“foo”而不是符号:{"foo"->value,...}。这行得通,但似乎激怒了我认识的一些经验丰富的 LISPers,他们责备我将符号和字符串混为一谈,并告诉我使用内置的引用结构。
虽然是在不使用字符串的情况下编写避免冲突的代码当然是可能的,但它通常看起来比它的价值更麻烦。另一方面,我没有看到太多{"string"->value} 类型替换规则的例子。所以你的问题是——这是一种可以接受的使用模式吗?..是否有特别合适的情况?..应该在哪里避免?..
【问题讨论】: