]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Signals.scl
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.scl.compiler / tests / org / simantics / scl / compiler / tests / scl / Signals.scl
diff --git a/bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Signals.scl b/bundles/org.simantics.scl.compiler/tests/org/simantics/scl/compiler/tests/scl/Signals.scl
new file mode 100644 (file)
index 0000000..726a3f5
--- /dev/null
@@ -0,0 +1,34 @@
+import "Prelude"\r
+\r
+// --- Signals ------------------------------------------------------\r
+\r
+data Signal =\r
+    SigSum [Signal]\r
+  | SigConst Double\r
+  | SigNeg Signal\r
+  | SigMul [Signal]\r
+\r
+deriving instance Eq Signal\r
+deriving instance Hashable Signal\r
+deriving instance Show Signal\r
+\r
+instance Additive Signal where\r
+    zero = SigConst 0\r
+    a + b = SigSum [a,b]\r
+    sum l = SigSum l\r
+\r
+instance Ring Signal where\r
+    one = SigConst 1\r
+    neg a = SigNeg a\r
+    fromInteger i = SigConst (fromInteger i)\r
+    a * b = SigMul [a,b]\r
+\r
+/*\r
+instance Real Signal where\r
+    fromDouble d = SigConst d\r
+*/\r
+\r
+main :: Signal\r
+main = 1 + 2 * 3 - 4 \r
+--\r
+???
\ No newline at end of file