我想定义一个函数,它接受一些可以更改的参数。
我认为我的函数应该将一个参数作为一个列表,然后解析它但它不起作用或我写错了。
调用函数会因belov而异。我想将函数定义为
(define function (lambda(list)(...
然后在列表上工作,但它没有成功。谢谢
(function param1 '(2 3) '(3 1))
(function param1 '(2 3) '(3 2) '(1 5))
答案 0 :(得分:1)
有一种语法,其中所有参数将自动放入列表中:
(define function
(lambda lst ; no parentheses!
lst))
或等效的
define (function . lst) ; mind the dot!
lst)
然后
(function '(2 3) '(3 1))
=> '((2 3) (3 1))
(function '(2 3) '(3 2) '(1 5))
=> '((2 3) (3 2) (1 5))
在您的函数内部(在我的示例中,我只是返回列表),然后您可以使用高阶函数(map
,filter
,...)处理列表,或者使用{{ 1}},first
或类似。
您还可以先拥有多个固定参数,然后是变量部分,例如:
second