Scheme 如何使用未知数量的变量定义函数?

Scheme 如何使用未知数量的变量定义函数?,scheme,racket,variadic-functions,Scheme,Racket,Variadic Functions,我第一次学习Lisp,当时我正在研究一个简单的函数,它可以附加两个列表。当我测试prediefined append的功能时,我注意到我可以给它两个以上的列表,我想知道我自己怎么做?所以我想知道如何在Lisp中生成一个包含未知数量变量的函数?使用 关键词: 卸载测试休息a和休息b 格式t第一个参数:~S;第二个论点:~S;其他参数:~S~% a第一b休息b 现在测试剩下的1234个指纹 第一个论点:1;第二个论点:2;其他论据:3 4 如果您对Scheme特别感兴趣,可以使用虚线 arglist

我第一次学习Lisp,当时我正在研究一个简单的函数,它可以附加两个列表。当我测试prediefined append的功能时,我注意到我可以给它两个以上的列表,我想知道我自己怎么做?所以我想知道如何在Lisp中生成一个包含未知数量变量的函数?

使用 关键词:

卸载测试休息a和休息b 格式t第一个参数:~S;第二个论点:~S;其他参数:~S~% a第一b休息b 现在测试剩下的1234个指纹

第一个论点:1;第二个论点:2;其他论据:3 4

如果您对Scheme特别感兴趣,可以使用虚线 arglist:

定义测试RESTA。B 首先显示列表a 列出其他b 现在将打印测试REST1 2 3 4

第一个1其他2 3 4

使用 关键词:

卸载测试休息a和休息b 格式t第一个参数:~S;第二个论点:~S;其他参数:~S~% a第一b休息b 现在测试剩下的1234个指纹

第一个论点:1;第二个论点:2;其他论据:3 4

如果您对Scheme特别感兴趣,可以使用虚线 arglist:

定义测试RESTA。B 首先显示列表a 列出其他b 现在将打印测试REST1 2 3 4

第一个1其他2 3 4


您可以使用虚线列表为可选参数定义函数。所有可选参数都将作为列表传递给函数

例如,此函数接受一个强制参数a0和任意数量的可选参数作为a-rest列表传递:

定义取多个a0。休息 休息 现在,当你称之为:

以120333为例 => 20 333 您可以看到可选的第二个和第二个参数作为列表提供。要访问它们,可以使用标准的列表访问器,如car、cdr、nth等

兰姆达也是如此


您可以在查找rest-id上了解更多信息。

您可以使用虚线列表为可选参数定义函数。所有可选参数都将作为列表传递给函数

例如,此函数接受一个强制参数a0和任意数量的可选参数作为a-rest列表传递:

定义取多个a0。休息 休息 现在,当你称之为:

以120333为例 => 20 333 您可以看到可选的第二个和第二个参数作为列表提供。要访问它们,可以使用标准的列表访问器,如car、cdr、nth等

兰姆达也是如此


您可以在查找rest-id上了解更多信息。

这对CL很好,但据我所知,OP询问的是类似Lisp的方案。这对CL很好,但据我所知,OP询问的是类似Lisp的Scheme。非常感谢您,我将浏览您提到的文档。非常感谢您,我将浏览您提到的文档