Mercurial > hg > xemacs-beta
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 |