From e05f4a4ee3e95c870ccf56b3fd925ffa52fb9705 Mon Sep 17 00:00:00 2001 From: Andreas Olsson Date: Tue, 3 Jan 2017 14:39:22 +0100 Subject: [PATCH] Add files via upload --- main.rkt | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 main.rkt diff --git a/main.rkt b/main.rkt new file mode 100644 index 0000000..ad189cf --- /dev/null +++ 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