~ chicken-core (chicken-5) 2e93bf17b7a91df262854090d0b701ec5bfdb163


commit 2e93bf17b7a91df262854090d0b701ec5bfdb163
Author:     Jim Ursetto <zbigniewsz@gmail.com>
AuthorDate: Tue Jan 29 13:18:03 2013 -0600
Commit:     Jim Ursetto <zbigniewsz@gmail.com>
CommitDate: Tue Jan 29 13:18:03 2013 -0600

    manual: merge (aesthetic) wiki changes for Exceptions and srfi-13

diff --git a/manual/Exceptions b/manual/Exceptions
index 6c1dc53b..171f0e7e 100644
--- a/manual/Exceptions
+++ b/manual/Exceptions
@@ -97,9 +97,7 @@ message.
 Evaluates {{EXPRESSION}} and handles any exceptions that are covered by
 {{CLAUSE ...}}, where {{CLAUSE}} should be of the following form:
 
-<enscript highlight=scheme>
-CLAUSE = ([VARIABLE] (KIND ...) BODY ...)
-</enscript>
+  CLAUSE = ([VARIABLE] (KIND ...) BODY ...)
 
 If provided, {{VARIABLE}} will be bound to the signaled exception
 object. {{BODY ...}} is executed when the exception is a property-
@@ -177,11 +175,13 @@ invoking ''thunk''.
 
 Example:
 
- (call-with-current-continuation
-  (lambda (k)
-   (with-exception-handler (lambda (x) (k '()))
-                           (lambda () (car '())))))
- ;=> '()
+<enscript highlight=scheme>
+(call-with-current-continuation
+ (lambda (k)
+  (with-exception-handler (lambda (x) (k '()))
+                          (lambda () (car '())))))
+;=> '()
+</enscript>
 
 Note that the handler procedure must somehow return non-locally out of
 the dynamic extent of the {{with-exception-handler}} form, because
@@ -202,22 +202,24 @@ value provided to the handler.
 
 Examples:
 
- (handle-exceptions exn
-		    (begin
-		      (display "Went wrong")
-		      (newline))
-  (car '()))
- ; displays "Went wrong"
+<enscript highlight=scheme>
+(handle-exceptions exn
+		   (begin
+		     (display "Went wrong")
+		     (newline))
+ (car '()))
+; displays "Went wrong"
  
- (handle-exceptions exn 
-		    (cond
-		     ((eq? exn 'one) 1)
-		     (else (ABORT exn)))
-   (case (random-number)
-    [(0) 'zero]
-    [(1) (abort 'one)]
-    [else (abort "Something else")]))
- ;=> 'zero, 1, or (abort "Something else")
+(handle-exceptions exn 
+		   (cond
+		    ((eq? exn 'one) 1)
+		     (else (abort exn)))
+  (case (random 3)
+   [(0) 'zero]
+   [(1) (abort 'one)]
+   [else (abort "Something else")]))
+;=> 'zero, 1, or (abort "Something else")
+</enscript>
 
 === Raising Exceptions
 
@@ -226,12 +228,14 @@ Examples:
 Raises a non-continuable exception represented by ''obj''. The {{abort}}
 procedure can be implemented as follows:
 
- (define (abort obj)
-   ((current-exception-handler) obj)
-   (abort (make-property-condition
-	    'exn
-	    'message
-	    "Exception handler returned")))
+<enscript highlight=scheme>
+(define (abort obj)
+  ((current-exception-handler) obj)
+  (abort (make-property-condition
+	   'exn
+	   'message
+	   "Exception handler returned")))
+</enscript>
 
 The {{abort}} procedure does not ensure that its argument is a condition.
 If its argument is a condition, {{abort}} does not ensure that the condition
@@ -242,8 +246,10 @@ indicates a non-continuable exception.
 Raises a continuable exception represented by ''obj''. The {{signal}} procedure
 can be implemented as follows:
 
- (define (signal exn)
-  ((current-exception-handler) exn))
+<enscript highlight=scheme>
+(define (signal exn)
+ ((current-exception-handler) exn))
+</enscript>
 
 The {{signal}} procedure does not ensure that its argument is a condition.
 If its argument is a condition, {{signal}} does not ensure that the condition
@@ -312,60 +318,66 @@ properties:
 Thus, if ''exn'' is a condition representing a system exception,
 then
 
+<enscript highlight=scheme>
  ((condition-property-accessor 'exn 'message) exn)
+</enscript>
 
 extracts the error message from ''exn''. Example:
 
- (handle-exceptions exn 
-		    (begin
-		      (display "Went wrong: ")
-		      (display
-		       ((condition-property-accessor 'exn 'message) exn))
-		      (newline))
-  (car '()))
- ; displays something like "Went wrong: can't take car of nil"
+<enscript highlight=scheme>
+(handle-exceptions exn 
+		   (begin
+		     (display "Went wrong: ")
+		     (display
+		      ((condition-property-accessor 'exn 'message) exn))
+		     (newline))
+ (car '()))
+; displays something like "Went wrong: can't take car of nil"
+</enscript>
 
 === More Examples
 
- (define (try-car v)
-  (let ((orig (current-exception-handler)))
-    (with-exception-handler
-     (lambda (exn)
-       (orig (make-composite-condition
-	      (make-property-condition
-	       'not-a-pair
-	       'value
-	       v)
-	      exn)))
-     (lambda () (car v)))))
+<enscript highlight=scheme>
+(define (try-car v)
+ (let ((orig (current-exception-handler)))
+   (with-exception-handler
+    (lambda (exn)
+      (orig (make-composite-condition
+	     (make-property-condition
+	      'not-a-pair
+	      'value
+	      v)
+	     exn)))
+    (lambda () (car v)))))
  
- (try-car '(1))
- ;=> 1
-
- (handle-exceptions exn
-		    (if ((condition-predicate 'not-a-pair) exn)
-			(begin
-			 (display "Not a pair: ")
-			 (display
-			  ((condition-property-accessor 'not-a-pair 'value) exn))
-			 (newline))
-			(ABORT exn))
-   (try-car 0))
- ; displays "Not a pair: 0"
-
- (let* ((cs-key (list 'color-scheme))
-	(bg-key (list 'background))
-	(color-scheme? (condition-predicate cs-key))
-	(color-scheme-background 
-	 (condition-property-accessor cs-key bg-key))
-	(condition1 (make-property-condition cs-key bg-key 'green))
-	(condition2 (make-property-condition cs-key bg-key 'blue))
-	(condition3 (make-composite-condition condition1 condition2)))
-   (and (color-scheme? condition1)
-	(color-scheme? condition2)
-	(color-scheme? condition3)
-	(color-scheme-background condition3)))
- ; => 'green or 'blue
+(try-car '(1))
+;=> 1
+
+(handle-exceptions exn
+		   (if ((condition-predicate 'not-a-pair) exn)
+		       (begin
+			(display "Not a pair: ")
+			(display
+			 ((condition-property-accessor 'not-a-pair 'value) exn))
+			(newline))
+		       (abort exn))
+  (try-car 0))
+; displays "Not a pair: 0"
+
+(let* ((cs-key (list 'color-scheme))
+       (bg-key (list 'background))
+       (color-scheme? (condition-predicate cs-key))
+       (color-scheme-background 
+	(condition-property-accessor cs-key bg-key))
+       (condition1 (make-property-condition cs-key bg-key 'green))
+       (condition2 (make-property-condition cs-key bg-key 'blue))
+       (condition3 (make-composite-condition condition1 condition2)))
+  (and (color-scheme? condition1)
+       (color-scheme? condition2)
+       (color-scheme? condition3)
+       (color-scheme-background condition3)))
+; => 'green or 'blue
+</enscript>
 
 ----
-Previous: [[Parameters]] Next: [[Unit library]]
+Previous: [[Parameters]] Next: [[Unit library]]
\ No newline at end of file
diff --git a/manual/Unit srfi-13 b/manual/Unit srfi-13
index bbd71086..822f7c72 100644
--- a/manual/Unit srfi-13	
+++ b/manual/Unit srfi-13	
@@ -1071,7 +1071,7 @@ use {{string-tokenize}} in contexts where more serious parsing is needed.
 ==== Filtering & deleting
 
 <procedure>(string-filter char/char-set/pred s [start end]) -> string</procedure><br>
-<procedure>(string-delete har/char-set/pred s [start end]) -> string</procedure><br>
+<procedure>(string-delete char/char-set/pred s [start end]) -> string</procedure><br>
 
 Filter the string S, retaining only those characters that satisfy / do not
 satisfy the CHAR/CHAR-SET/PRED argument. If this argument is a procedure,
Trap