doc: cookbook: Mention common SRFI-1 procedures.
* doc/guix-cookbook.texi (A Scheme Crash Course): Add item about SRFI-1.
This commit is contained in:
parent
3c7d465133
commit
d20a7da4a3
@ -192,7 +192,8 @@ rest are the arguments passed to the function. Every function returns the
|
|||||||
last evaluated expression as its return value.
|
last evaluated expression as its return value.
|
||||||
|
|
||||||
@item
|
@item
|
||||||
Anonymous functions are declared with the @code{lambda} term:
|
Anonymous functions---@dfn{procedures} in Scheme parlance---are declared
|
||||||
|
with the @code{lambda} term:
|
||||||
|
|
||||||
@lisp
|
@lisp
|
||||||
(lambda (x) (* x x))
|
(lambda (x) (* x x))
|
||||||
@ -208,6 +209,9 @@ which can in turn be applied to an argument:
|
|||||||
@result{} 9
|
@result{} 9
|
||||||
@end lisp
|
@end lisp
|
||||||
|
|
||||||
|
Procedures are regular values just like numbers, strings, Booleans, and
|
||||||
|
so on.
|
||||||
|
|
||||||
@item
|
@item
|
||||||
Anything can be assigned a global name with @code{define}:
|
Anything can be assigned a global name with @code{define}:
|
||||||
|
|
||||||
@ -233,6 +237,30 @@ A list structure can be created with the @code{list} procedure:
|
|||||||
@result{} (2 3 5 7)
|
@result{} (2 3 5 7)
|
||||||
@end lisp
|
@end lisp
|
||||||
|
|
||||||
|
@item
|
||||||
|
Standard procedures are provided by the @code{(srfi srfi-1)} module to
|
||||||
|
create and process lists (@pxref{SRFI-1, list processing,, guile, GNU
|
||||||
|
Guile Reference Manual}). Here are some of the most useful ones in
|
||||||
|
action:
|
||||||
|
|
||||||
|
@lisp
|
||||||
|
(use-modules (srfi srfi-1)) ;import list processing procedures
|
||||||
|
|
||||||
|
(append (list 1 2) (list 3 4))
|
||||||
|
@result{} (1 2 3 4)
|
||||||
|
|
||||||
|
(map (lambda (x) (* x x)) (list 1 2 3 4))
|
||||||
|
@result{} (1 4 9 16)
|
||||||
|
|
||||||
|
(delete 3 (list 1 2 3 4)) @result{} (1 2 4)
|
||||||
|
(filter odd? (list 1 2 3 4)) @result{} (1 3)
|
||||||
|
(remove even? (list 1 2 3 4)) @result{} (1 3)
|
||||||
|
(find number? (list "a" 42 "b")) @result{} 42
|
||||||
|
@end lisp
|
||||||
|
|
||||||
|
Notice how the first argument to @code{map}, @code{filter},
|
||||||
|
@code{remove}, and @code{find} is a procedure!
|
||||||
|
|
||||||
@item
|
@item
|
||||||
@cindex S-expression
|
@cindex S-expression
|
||||||
The @dfn{quote} disables evaluation of a parenthesized expression, also
|
The @dfn{quote} disables evaluation of a parenthesized expression, also
|
||||||
|
Loading…
Reference in New Issue
Block a user