我正在做一个作业,我必须构造一个函数,它接受一个参数并返回各种东西。但是,它也应该在没有参数的情况下进行评估时做一些事情,我不知道该怎么做。有谁知道如何实现这样的功能?我是否可以设置一个条件,如果使用参数对其进行评估,则执行 x,如果没有参数,则执行 y?
最佳答案
你可以使用表格
(define g (lambda args ...body...))
为此。 args
将绑定(bind)到函数调用中所有提供的参数的列表。您可以在函数的 ...body...
中对其进行分析并做出适当的决定。
一个著名的很好的例子是
(lambda args args)
这个函数的名字是什么?
定义此类函数的另一种语法是
(define (g . args) args)
要定义一个函数,比如说,至少要有两个参数,你可以这样写
(define (foo a b . c) ...body...)
; (define foo (lambda (a b . c) ...body...))
其中 a
将是第一个参数,b
是第二个参数,而 c
将是所有其余参数的列表函数调用(可能为空)。
关于scheme - 带参数和不带参数的 lisp(方案)函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48855892/