LISP 中的可选参数
可选参数是函数中可选的函数。只要参数不是必需的,我们就可以放置可选参数。如果我们将可选参数保留在函数中并传递值,那么这些值将代替可选参数。如果未传递值,则可选参数将采用 NIL 并返回 NIL。如果我们想将可选参数作为实参,则将&optional放在可选参数的名称之前。
函数语法:
(defun function_name (parameter1,parameter2,.......,parameter n.... &optional )
other statements))
(call function value1,value2,.,value n, optional values)
示例: LISP 程序显示其所有传递的参数。
Lisp
;create a function named display
;pass the 2 parameters and optional as three parameters
(defun display (val1 val2 &optional op1 op2 op3) (write (list val1 val2 op1 op2 op3)))
;pass the all values
(display 10 20 30 40 50)
(terpri)
;pass only two values
(display 10 20 )
(terpri)
;pass only three values
(display 10 20 30)
(terpri)
;pass only four values
(display 10 20 30 40)
(terpri)
Lisp
;create a function named sum
;pass the 2 parameters and optional as three parameters
(defun sum (val1 val2 &optional op1 op2 op3) (write ( + val1 val2 op1 op2 op3)))
;pass the all values to get sum
(sum 10 20 30 40 50)
(terpri)
输出:
(10 20 30 40 50)
(10 20 NIL NIL NIL)
(10 20 30 NIL NIL)
(10 20 30 40 NIL)
示例 2:获取数字总和的 LISP 程序
语言
;create a function named sum
;pass the 2 parameters and optional as three parameters
(defun sum (val1 val2 &optional op1 op2 op3) (write ( + val1 val2 op1 op2 op3)))
;pass the all values to get sum
(sum 10 20 30 40 50)
(terpri)
输出:
150