comparison man/lispref/functions.texi @ 5128:7be849cb8828 ben-lisp-object

merge
author Ben Wing <ben@xemacs.org>
date Sun, 07 Mar 2010 02:09:59 -0600
parents 99f8ebc082d9
children 62b9ef1ed4ac
comparison
equal deleted inserted replaced
5127:a9c41067dd88 5128:7be849cb8828
288 specifies three argument variables, so it must be called with three 288 specifies three argument variables, so it must be called with three
289 arguments: if you try to call it with only two arguments or four 289 arguments: if you try to call it with only two arguments or four
290 arguments, you get a @code{wrong-number-of-arguments} error. 290 arguments, you get a @code{wrong-number-of-arguments} error.
291 291
292 It is often convenient to write a function that allows certain 292 It is often convenient to write a function that allows certain
293 arguments to be omitted. For example, the function @code{substring} 293 arguments to be omitted. For example, the function @code{subseq}
294 accepts three arguments---a string, the start index and the end 294 accepts three arguments---a sequence, the start index and the end
295 index---but the third argument defaults to the @var{length} of the 295 index---but the third argument defaults to the @var{length} of the
296 string if you omit it. It is also convenient for certain functions to 296 sequence if you omit it. It is also convenient for certain functions to
297 accept an indefinite number of arguments, as the functions @code{list} 297 accept an indefinite number of arguments, as the functions @code{list}
298 and @code{+} do. 298 and @code{+} do.
299 299
300 @cindex optional arguments 300 @cindex optional arguments
301 @cindex rest arguments 301 @cindex rest arguments
329 If actual arguments for the optional and rest variables are omitted, 329 If actual arguments for the optional and rest variables are omitted,
330 then they always default to @code{nil}. There is no way for the 330 then they always default to @code{nil}. There is no way for the
331 function to distinguish between an explicit argument of @code{nil} and 331 function to distinguish between an explicit argument of @code{nil} and
332 an omitted argument. However, the body of the function is free to 332 an omitted argument. However, the body of the function is free to
333 consider @code{nil} an abbreviation for some other meaningful value. 333 consider @code{nil} an abbreviation for some other meaningful value.
334 This is what @code{substring} does; @code{nil} as the third argument to 334 This is what @code{subseq} does; @code{nil} as the third argument to
335 @code{substring} means to use the length of the string supplied. 335 @code{subseq} means to use the length of the sequence supplied.
336 336
337 @cindex CL note---default optional arg 337 @cindex CL note---default optional arg
338 @quotation 338 @quotation
339 @b{Common Lisp note:} Common Lisp allows the function to specify what 339 @b{Common Lisp note:} Common Lisp allows the function to specify what
340 default value to use when an optional argument is omitted; XEmacs Lisp 340 default value to use when an optional argument is omitted; XEmacs Lisp