当您为SSGET表达式创建过滤器列表时,有许多方法可以构造列表,理解其中的差异至关重要。
首先请注意,列表可以通过以下方式创建:
或
两者代表同一事物。然而,口译员将以两种不同的方式解释这两种表达。
对于第一个参数,list函数告诉解释器评估传递给它的每个参数,并返回一个包含所有传递参数的列表。
然而,在第二种排列中,引号(或撇号)将告诉口译员不要计算撇号后面语句中的任何表达式。
这就是为什么在mapcar中使用撇号:
返回:
在这种情况下,撇号告诉解释器,不计算函数+,而是作为参数传递给mapcar函数。
那么,回到你手头的问题上来。
创建包含“已知”元素的过滤器列表时,例如:
不计算提供的列表,而只是将其作为参数传递给ssget函数(由于撇号)。因此,不会评估列表中的任何变量。
因此,为了计算变量,我们需要为解释器提供函数,告诉它计算出参数:
现在,如果我们的变量持有正确格式的值(在本例中为实数),则将正确构造和评估过滤器列表。
或者,您可以组合这些选项:
作为“(0。“TEXT”)部分仅被视为列表参数,并传递给列表函数。
但是,这将不起作用:
由于撇号的存在,将不评估cons函数。
如果你对我发布的任何信息有任何疑问,尽管问。
干杯
李 |