Added pattern matching
ref variables now do pattern matching. This means that, say, the variable binding the (car cursor) in (in-list ...) can be a (ice-9 match) pattern: (loop/list (((a . b) (in-list '((1 ignore) (2 ignore) (3 ignore)))) a) ;; => (1 2 3)
This commit is contained in:
		
							parent
							
								
									093d1319d9
								
							
						
					
					
						commit
						2dc4a72790
					
				
					 1 changed files with 6 additions and 5 deletions
				
			
		
							
								
								
									
										11
									
								
								goof.scm
									
										
									
									
									
								
							
							
						
						
									
										11
									
								
								goof.scm
									
										
									
									
									
								
							|  | @ -38,7 +38,8 @@ | ||||||
|              ((srfi srfi-1) #:select (circular-list)) |              ((srfi srfi-1) #:select (circular-list)) | ||||||
|              (srfi srfi-71) |              (srfi srfi-71) | ||||||
|              (rnrs io simple) |              (rnrs io simple) | ||||||
|              (ice-9 futures)) |              (ice-9 futures) | ||||||
|  |              (ice-9 match)) | ||||||
| 
 | 
 | ||||||
| (define-aux-syntaxes | (define-aux-syntaxes | ||||||
|   ;; Auxiliary syntax for the loop clauses |   ;; Auxiliary syntax for the loop clauses | ||||||
|  | @ -297,7 +298,7 @@ | ||||||
|              (begin |              (begin | ||||||
|                ff-cur ... |                ff-cur ... | ||||||
|                (final-fun final-value ...)) |                (final-fun final-value ...)) | ||||||
|              (let (refs ...) |              (match-let (refs ...) | ||||||
|                (user-let () () (user-lets ...) |                (user-let () () (user-lets ...) | ||||||
|                  (if (and user-whens ...) |                  (if (and user-whens ...) | ||||||
|                      (let-kw-form name |                      (let-kw-form name | ||||||
|  | @ -338,7 +339,7 @@ | ||||||
|              (begin |              (begin | ||||||
|                ff-cur ... |                ff-cur ... | ||||||
|                (final-fun final-value ...)) |                (final-fun final-value ...)) | ||||||
|              (let (refs ...) |              (match-let (refs ...) | ||||||
|                (user-let () () (user-lets ...) |                (user-let () () (user-lets ...) | ||||||
|                  (if (and user-whens ...) |                  (if (and user-whens ...) | ||||||
|                      (cond |                      (cond | ||||||
|  | @ -388,7 +389,7 @@ | ||||||
|              (begin |              (begin | ||||||
|                ff-cur ... |                ff-cur ... | ||||||
|                outer) |                outer) | ||||||
|              (let (refs ...) |              (match-let (refs ...) | ||||||
|                (user-let () () (user-lets ...) |                (user-let () () (user-lets ...) | ||||||
|                  (if (and user-whens ...)          |                  (if (and user-whens ...)          | ||||||
|                      (cond |                      (cond | ||||||
|  | @ -423,7 +424,7 @@ | ||||||
|              (begin |              (begin | ||||||
|                ff-cur ... |                ff-cur ... | ||||||
|                outer) |                outer) | ||||||
|              (let (refs ...) |              (match-let (refs ...) | ||||||
|                (user-let () () (user-lets ...) |                (user-let () () (user-lets ...) | ||||||
|                  (if (and user-whens ...) |                  (if (and user-whens ...) | ||||||
|                      (cond |                      (cond | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Linus
						Linus