LISP 中的 M 表达式 list[x;y] 有什么作用?
What does the M-expression list[x;y] do in LISP?
我在看this paper on LISP by McCarthy (way above my skill set). While defining the evaluation of (LABEL, f, e) here,他用了一个M-expression(我认为是M-expression,如果我错了请指正)list[x;y]
。
{实际上,list[cadar[e];car[e]]
}。
按照我的理解,它表示(e1, e2),其中e1和e2是S表达式。我是说对了还是其他什么,list[x;y]
的对应表达式是什么?
谢谢。
在元语言中,表达式 list[a; b]
表示将函数 list
应用于两个参数,它构建了一个包含两个元素的列表,这两个元素是 [=12 的计算结果=] 和 b
分别。
在 S 表达式的语言中,因此,这将被写成通常的函数调用:(LIST a b)
,这是一个列表,第一个元素是函数的名称(LIST
) 其余元素为函数的实际参数。请注意,这里我对 S 表达式使用符号 (a b)
,而不是 (a, b)
。 McCarthy 自己后来更改了这种表示法,并在 LISP 1.5 Programmer’s Manual. 2. ed. Cambridge, Mass: MIT Pr, 1979.
中使用了新的表示法。
我在看this paper on LISP by McCarthy (way above my skill set). While defining the evaluation of (LABEL, f, e) here,他用了一个M-expression(我认为是M-expression,如果我错了请指正)list[x;y]
。
{实际上,list[cadar[e];car[e]]
}。
按照我的理解,它表示(e1, e2),其中e1和e2是S表达式。我是说对了还是其他什么,list[x;y]
的对应表达式是什么?
谢谢。
在元语言中,表达式 list[a; b]
表示将函数 list
应用于两个参数,它构建了一个包含两个元素的列表,这两个元素是 [=12 的计算结果=] 和 b
分别。
在 S 表达式的语言中,因此,这将被写成通常的函数调用:(LIST a b)
,这是一个列表,第一个元素是函数的名称(LIST
) 其余元素为函数的实际参数。请注意,这里我对 S 表达式使用符号 (a b)
,而不是 (a, b)
。 McCarthy 自己后来更改了这种表示法,并在 LISP 1.5 Programmer’s Manual. 2. ed. Cambridge, Mass: MIT Pr, 1979.
中使用了新的表示法。