]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Matching.scl
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.scl.compiler / tests / org / simantics / scl / compiler / tests / scl / Matching.scl
diff --git a/bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Matching.scl b/bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Matching.scl
new file mode 100644 (file)
index 0000000..f240a1c
--- /dev/null
@@ -0,0 +1,19 @@
+\r
+data List a = Nil | Cons a (List a)\r
+\r
+first :: List Integer -> Integer\r
+//first Nil = 0 :: Integer\r
+first (Cons x _) = x\r
+\r
+reverse :: List a -> List a\r
+reverse l = reverseAux Nil l \r
+  where\r
+    reverseAux accum Nil = accum\r
+    reverseAux accum (Cons h t) = reverseAux (Cons h accum) t    \r
+\r
+main :: Integer\r
+main = first (reverse l) \r
+  where\r
+    l = Cons (1 :: Integer) (Cons (2 :: Integer) (Cons (3 :: Integer) Nil))\r
+--\r
+3
\ No newline at end of file