aboutsummaryrefslogtreecommitdiff
path: root/monad.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2015-04-04 16:06:53 +0200
committerDimitri Sokolyuk <demon@dim13.org>2015-04-04 16:06:53 +0200
commit7668d984110d4cab09c2359c23cf760929dbb6e5 (patch)
treeb6ba9d2403f2aa15458e6891af331a0b8b232256 /monad.go
parent74aa9b4bc562b6fdc87d2609d288055cf7931cac (diff)
Experimental
Diffstat (limited to 'monad.go')
-rw-r--r--monad.go14
1 files changed, 13 insertions, 1 deletions
diff --git a/monad.go b/monad.go
index 14a1d68..083a3de 100644
--- a/monad.go
+++ b/monad.go
@@ -9,7 +9,19 @@ var monads = map[rune]Monad{
'÷': reciprocal,
}
-func identity(d complex128) complex128 { return d }
+func identity(d complex128) complex128 { return cmplx.Conj(d) }
func negate(d complex128) complex128 { return -d }
func direction(d complex128) complex128 { return d / complex(cmplx.Abs(d), 0) }
func reciprocal(d complex128) complex128 { return 1.0 / d }
+
+var dyads = map[rune]Dyad{
+ '+': plus,
+ '-': minus,
+ '×': times,
+ '÷': divide,
+}
+
+func plus(a, w complex128) complex128 { return a + w }
+func minus(a, w complex128) complex128 { return a - w }
+func times(a, w complex128) complex128 { return a * w }
+func divide(a, w complex128) complex128 { return a / w }