X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.scl.runtime%2Fscl%2FSet.scl;fp=bundles%2Forg.simantics.scl.runtime%2Fscl%2FSet.scl;h=34033d91ef928ff9e52f2094f1db6c225f22ddd9;hp=2bf2911c5631cc4e33938711b3a1f6ea86c16007;hb=e1b1c30f512d3c196c86c4a1f0eaf8b7dd461a9a;hpb=036b555cbdd43f284be4818de93f11fdddf6d9f2 diff --git a/bundles/org.simantics.scl.runtime/scl/Set.scl b/bundles/org.simantics.scl.runtime/scl/Set.scl index 2bf2911c5..34033d91e 100644 --- a/bundles/org.simantics.scl.runtime/scl/Set.scl +++ b/bundles/org.simantics.scl.runtime/scl/Set.scl @@ -11,13 +11,31 @@ importJava "java.util.Set" where iterator :: T a -> Iterator.T a @inline -iter :: (a -> ()) -> T a -> () +iter :: (a -> b) -> T a -> () iter f s = runProc (Iterator.iter f (iterator s)) @inline iterB :: (a -> Boolean) -> T a -> Boolean iterB f s = runProc (Iterator.iterB f (iterator s)) +@inline +iterI :: (Integer -> a -> b) -> T a -> () +iterI f s = runProc (Iterator.iterI f (iterator s)) + @inline fold :: (a -> b -> a) -> a -> T b -> a fold f init s = runProc (Iterator.fold f init (iterator s)) + +importJava "java.util.Collections" where + singleton :: a -> T a + + @JavaName emptySet + empty :: T a + +importJava "gnu.trove.set.hash.THashSet" where + @JavaName "" + fromList :: [a] -> T a + +importJava "java.util.ArrayList" where + @JavaName "" + toList :: T a -> [a]