21 lines
		
	
	
		
			363 B
		
	
	
	
		
			Scheme
		
	
	
	
			
		
		
	
	
			21 lines
		
	
	
		
			363 B
		
	
	
	
		
			Scheme
		
	
	
	
| (define-library (picrin control list)
 | |
|   (import (scheme base)
 | |
|           (picrin control))
 | |
| 
 | |
|   (define-syntax for
 | |
|     (syntax-rules ()
 | |
|       ((_ expr)
 | |
|        (reset (lambda () expr)))))
 | |
| 
 | |
|   (define (in m)
 | |
|     (shift (lambda (k)
 | |
|              (apply append (map k m)))))
 | |
| 
 | |
|   (define (yield x)
 | |
|     (list x))
 | |
| 
 | |
|   (define (null . x)
 | |
|     '())
 | |
| 
 | |
|   (export for in yield null))
 |