commit e05f4a4ee3e95c870ccf56b3fd925ffa52fb9705 parent 5765dab97ce12807fa6ac10eec525c16cff71a4f Author: Andreas Olsson <photoguy.apo@gmail.com> Date: Tue, 3 Jan 2017 14:39:22 +0100 Add files via upload Diffstat:
| A | main.rkt | | | 24 | ++++++++++++++++++++++++ |
1 file changed, 24 insertions(+), 0 deletions(-)
diff --git a/main.rkt b/main.rkt @@ -0,0 +1,23 @@ +#lang racket + +;pmap is a parallel concurrent map function. +;its inspired of Clojures pmap. + +(require racket/future) + +(provide pmap) + +(define (transpose lists) ; collumns to rows! + (apply map list lists)) + +;(transpose '((1 3 5) (2 4 6))) ; test + +(define (pmap func . lists) ; pmap + (map touch + (for/list ([a (transpose lists)]) + (future (lambda () (apply func a))) + ))) + +;(pmap (lambda (x)(car x)) '((a b)(c d)(e f))) ; a test +;(pmap * '(1 2 3 4 5 6 7 8 9) '(1 2 3 4 5 6 7 8 9)) ; a nother test +;(pmap (lambda (x y) (* x y)) '(1 2 3 4 5 6 7 8 9) '(1 2 3 4 5 6 7 8 9)) ; yet a nother test! +\ No newline at end of file