我正在阅读麦卡锡关于LISP的this论文(高于我的技能)。在定义(LABEL,f,e)here的评价时,他使用了M表达式(我认为它是一个M表达式,如果我错了,请纠正我)list[x;y]
。
{实际上,list[cadar[e];car[e]]
}。
根据我的理解,它象征着(e1,e2)其中e1和e2是S-表达式。我做对了还是别的什么,list[x;y]
的对应表达式是什么?
谢谢。
答案 0 :(得分:3)
在元语言中,表达式list[a; b]
表示将函数list
应用于两个参数,这两个参数构建一个包含两个元素的列表,这两个元素是a
的评估结果和b
分别。
在S表达式的语言中,因此,这将被写为通常的函数调用:(LIST a b)
,这是一个列表,第一个元素是函数的名称(LIST
)和其余的元素函数的实际参数。请注意,我在这里使用符号(a b)
表示S表达式,而不是(a, b)
。麦卡锡本身后来改变了这种表示法,并且在LISP 1.5 Programmer’s Manual. 2. ed. Cambridge, Mass: MIT Pr, 1979.
中使用了新的表示法。