X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.scl.runtime%2Fscl%2FPrelude.scl;h=4a51875b2be4595c056e725f734aaee8cd26cfab;hb=138667b7aae3a7984a8d0bb2a39461ce342b08e7;hp=d5d2788285d45a30c815a303be8937dd5f60ad68;hpb=66e653e6290c87c1ea8cd1dbc2bacdaaff1065f5;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.runtime/scl/Prelude.scl b/bundles/org.simantics.scl.runtime/scl/Prelude.scl index d5d278828..4a51875b2 100644 --- a/bundles/org.simantics.scl.runtime/scl/Prelude.scl +++ b/bundles/org.simantics.scl.runtime/scl/Prelude.scl @@ -1166,10 +1166,12 @@ class IndexedSequence f where "Returns the first element of a sequence" @inline +first :: [a] -> a first l = l!0 "Returns the last element of a sequence" @inline +last :: [a] -> a last l = l!(length l-1) instance IndexedSequence [] where @@ -1965,6 +1967,11 @@ importJava "org.simantics.scl.runtime.Lists" where """ index :: [(a,b)] -> a -> Maybe b + """ + Given a list of elements, the function produces its characteristic function. + """ + indexSet :: [a] -> a -> Boolean + """ Given a list of values and a function computing a key for each value, the function produces a function that finds a value effeciently for the given key. @@ -2053,6 +2060,7 @@ Transposes the rows and columns of its argument. For example, transpose [[1,2,3],[4,5,6]] == [[1,4],[2,5],[3,6]] transpose [[1,2],[3,4,5]] == [[1,3],[2,4],[5]] """ +transpose :: [[a]] -> [[a]] transpose xss = [[xs!i | xs <- xss, i < length xs] | i <- [0..maximum [length xs | xs <- xss]-1]]