]> git.donarmstrong.com Git - lilypond.git/commitdiff
Doc: Extending -- Add Scheme conditionals
authorCarl Sorensen <c_sorensen@byu.edu>
Thu, 24 Dec 2009 04:50:12 +0000 (21:50 -0700)
committerCarl Sorensen <c_sorensen@byu.edu>
Thu, 24 Dec 2009 04:50:53 +0000 (21:50 -0700)
Documentation/extending/scheme-tutorial.itely

index db7c563ef148dd7fd02b0e883ed7d98ad09c3ec3..2407c22f1cc11f38972b2c9676f507e58e8497db 100644 (file)
@@ -545,8 +545,45 @@ guile> (let ((x 2) (y 3) (z 4)) (display (+ x y)) (display (- z 4))
 
 @unnumberedsubsubsec if
 
+Scheme has an @code{if} procedure:
+
+@example
+(if test-expression true-expression false-expression)
+@end example
+
+@var{test-expression} is an expression that returns a boolean
+value.  If @var{test-expression} returns @code{#t}, the if
+procedure returns the value of @var{true-expression}, otherwise
+it returns the value of @var{false-expression}.
+
+@lisp
+guile> (define a 3)
+guile> (define b 5)
+guile> (if (> a b) "a is greater than b" "a is not greater than b")
+"a is not greater than b"
+@end lisp
+
 @unnumberedsubsubsec cond
 
+Another conditional procedure in scheme is @code{cond}:
+
+@example
+(cond (test-expression-1 result-expression-sequence-1)
+      (test-expression-2 result-expression-sequence-2)
+      ...
+      (test-expression-n result-expression-sequence-n))
+@end example
+
+For example:
+
+@lisp
+guile> (define a 6)
+guile> (define b 8)
+guile> (cond ((< a b) "a is less than b")
+...          ((= a b) "a equals b")
+...          ((> a b) "a is greater than b"))
+"a is less than b"
+@end lisp
 
 @node Scheme in LilyPond
 @section Scheme in LilyPond