Added a few bits.
This commit is contained in:
		
							parent
							
								
									bad528299e
								
							
						
					
					
						commit
						630f678236
					
				|  | @ -170,3 +170,31 @@ | |||
|   (let ((f (round x))) | ||||
|     (if (inexact? f) (inexact->exact f) f))) | ||||
| 
 | ||||
| 
 | ||||
| ;;; Copy string SOURCE into TARGET[start,...] | ||||
| 
 | ||||
| (define (string-replace! target start source) | ||||
|   (let ((len (string-length source))) | ||||
|     (do ((i (+ start len -1) (- i 1)) | ||||
| 	 (j (- len 1) (- j 1))) | ||||
|       ((< j 0) target) | ||||
|       (string-set! target i (string-ref source j))))) | ||||
| 
 | ||||
| 
 | ||||
| ;;; Copy SOURCE[source-start, source-end) into TARGET[start,) | ||||
| 
 | ||||
| (define (substring-replace! target start source source-start source-end) | ||||
|   (do ((i (+ start (- source-end source-start) -1) (- i 1)) | ||||
|        (j (- source-end 1) (- j 1))) | ||||
|       ((< j source-start) target) | ||||
|     (string-set! target i (string-ref source j)))) | ||||
| 
 | ||||
| 
 | ||||
| ;;; Compute (... (f (f (f zero c0) c1) c2) ...) | ||||
| 
 | ||||
| (define (string-reduce f zero s) | ||||
|   (let ((len (string-length s))) | ||||
|     (let lp ((v zero) (i 0)) | ||||
|       (if (= i len) | ||||
| 	  v | ||||
| 	  (lp (f v (string-ref s i)) (+ i 1)))))) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 shivers
						shivers