par: add proplogic
This commit is contained in:
		
							parent
							
								
									ed28464c04
								
							
						
					
					
						commit
						05a88c1a29
					
				|  | @ -0,0 +1,38 @@ | |||
| (define first car) | ||||
| (define rest cdr) | ||||
| 
 | ||||
| (define (prime-numbers amount from) | ||||
|   (if (= amount 0) | ||||
|     '() | ||||
|     (if (prime? from) | ||||
|       (cons from (prime-numbers (- amount 1) (+ from 1))) | ||||
|       (prime-numbers amount (+ from 1))))) | ||||
| 
 | ||||
| (define (divisors n from) | ||||
|   (if (> from n) | ||||
|     '() | ||||
|     (if (= (remainder n from) 0) | ||||
|       (cons from (divisors n (+ from 1))) | ||||
|       (divisors n (+ from 1))))) | ||||
| 
 | ||||
| (define (prime? number) | ||||
|   (equal? (divisors number 1) (list 1 number))) | ||||
| 
 | ||||
| (define (square x) (* x x)) | ||||
| 
 | ||||
| (define (squares list-of-numbers) | ||||
|   (if (eq? list-of-numbers '()) | ||||
|     '() | ||||
|     (cons (square (first list-of-numbers)) (squares (rest list-of-numbers))))) | ||||
| 
 | ||||
| (define (map f list) | ||||
|   (if (eq? list '()) | ||||
|     '() | ||||
|     (cons (f (first list)) (map f (rest list))))) | ||||
| 
 | ||||
| (define (sum numbers) | ||||
|   (if (eq? numbers '()) | ||||
|     0 | ||||
|     (+ (first numbers) (sum (rest numbers))))) | ||||
| 
 | ||||
| ;; (sum (map square (prime-numbers 7 1))) | ||||
|  | @ -0,0 +1,9 @@ | |||
| (let ((pamphlet (string-append (getenv "HOME") "/src/pamphlet/libraries"))) | ||||
|   (add-to-load-path pamphlet)) | ||||
| (use-modules (ice-9 nice-9) (srfi srfi-1) (pamphlet)) | ||||
| 
 | ||||
| (define (lookup key mapping) | ||||
|   (let* ((((name . value) . remaining) mapping)) | ||||
|     (if (eq? name key) | ||||
| 	value | ||||
| 	(lookup key remaining)))) | ||||
		Loading…
	
		Reference in New Issue