]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.runtime/scl/Prelude.scl
Sync git svn branch with SVN repository r33364.
[simantics/platform.git] / bundles / org.simantics.scl.runtime / scl / Prelude.scl
index b29b04a2fe42025c1538637f10080c921e4bf12f..0dcd1b7507d6ee99ee2866c174f5b987ee1e77e0 100644 (file)
@@ -1842,6 +1842,17 @@ maybeToList :: Maybe a -> [a]
 maybeToList (Just a) = [a]
 maybeToList _ = [] 
 
+"""
+`takeWhile p l`, returns the longest prefix (possibly empty) of list `l` of elements that satisfy `p`
+"""
+takeWhile :: (a -> <e> Boolean) -> [a] -> <e> [a]
+takeWhile f l = loop 0 
+  where
+    len = length l
+    loop i | i == len  = l
+           | f (l!i)   = loop (i+1)
+           | otherwise = take i l
+
 partition :: (a -> <e> Boolean) -> [a] -> <e> ([a], [a])
 partition p l = runProc do
     res1 = newArrayList
@@ -2283,9 +2294,9 @@ importJava "org.simantics.databoard.binding.mutable.Variant" where
     @JavaName getValue
     rawVariantValue :: Variant -> a
     @JavaName ofInstance
-    variantOf :: a -> Variant\r
+    variantOf :: a -> Variant
     @JavaName "<init>"
-    variantOfWithBinding :: Binding a -> a -> Variant\r
+    variantOfWithBinding :: Binding a -> a -> Variant
     @JavaName getValue
     variantValue_ :: Variant -> Binding a -> a
     @JavaName toString