Added a new function pmap to Async module 44/1344/1
authorHannu Niemistö <hannu.niemisto@semantum.fi>
Wed, 3 Jan 2018 11:09:24 +0000 (13:09 +0200)
committerHannu Niemistö <hannu.niemisto@semantum.fi>
Wed, 3 Jan 2018 11:09:24 +0000 (13:09 +0200)
refs #7703

Change-Id: I848203393d115a0c8f9bbbfbf80e47f35f17616d

bundles/org.simantics.scl.runtime/scl/Async.scl
bundles/org.simantics.scl.runtime/src/org/simantics/scl/runtime/utils/AsyncUtils.java

index c47f457ef7d5751aa5e5d0c8bc2056b0219368d5..9ff397f19cdf2fec1a89dc2c933598d2c5678133 100644 (file)
@@ -1,2 +1,3 @@
 importJava "org.simantics.scl.runtime.utils.AsyncUtils" where
-    runAsync :: (<Proc> a) -> <Proc> ()
\ No newline at end of file
+    runAsync :: (<Proc> a) -> <Proc> ()
+    pmap :: (a -> b) -> [a] -> [b]
index 29886f21ee960e916f6078d581f4d2032f142414..3392d461c2ed05ae6d305f237740ca4d27f05b91 100644 (file)
@@ -2,6 +2,8 @@ package org.simantics.scl.runtime.utils;
 
 import java.io.PrintWriter;
 import java.io.StringWriter;
+import java.util.Arrays;
+import java.util.List;
 
 import org.simantics.scl.runtime.SCLContext;
 import org.simantics.scl.runtime.function.Function;
@@ -27,4 +29,8 @@ public class AsyncUtils {
             }
         }.start();
     }
+    
+    public static List<Object> pmap(Function f, List<Object> l) {
+        return Arrays.asList(l.parallelStream().map(a -> f.apply(a)).toArray());
+    }
 }