Scheme 括号和“apply”之间有什么区别?
要使用一些参数调用函数,我们只需Scheme 括号和“apply”之间有什么区别?,scheme,Scheme,要使用一些参数调用函数,我们只需(funcname arg1 arg2…或(apply funcname'(arg1 arg2…)。这两种方式有什么区别?谢谢。不同之处在于apply的参数以列表形式给出。因此,如果您已经有某个列表,您可以使用(应用我的列表)调用f,使用列表中的参数。谢谢。顺便问一下,如何解包列表,以便将给定列表用作括号内函数的参数?@tim使用apply。这就是它存在的原因。在Ruby或Python中使用f(*arglist)时,在Scheme中使用(apply f argli
(funcname arg1 arg2…
或(apply funcname'(arg1 arg2…)
。这两种方式有什么区别?谢谢。不同之处在于apply
的参数以列表形式给出。因此,如果您已经有某个列表,您可以使用(应用我的列表)
调用f
,使用列表中的参数。谢谢。顺便问一下,如何解包列表,以便将给定列表用作括号内函数的参数?@tim使用apply
。这就是它存在的原因。在Ruby或Python中使用f(*arglist)
时,在Scheme中使用(apply f arglist)
。谢谢。我理解。只是想知道如何打开列表?你需要解释一下“打开”是什么意思。您可以使用car、cdr和同源词访问列表中的成员。大多数方案还带有一个模式匹配宏,它将(除其他外)解构列表。