From cb726fac520ed6336610d90af63c61044c51dfee Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sun, 29 Mar 2015 19:31:45 +0200 Subject: Experimental --- monad.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 monad.go (limited to 'monad.go') diff --git a/monad.go b/monad.go new file mode 100644 index 0000000..14a1d68 --- /dev/null +++ b/monad.go @@ -0,0 +1,15 @@ +package main + +import "math/cmplx" + +var monads = map[rune]Monad{ + '+': identity, + '-': negate, + '×': direction, + '÷': reciprocal, +} + +func identity(d complex128) complex128 { return 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 } -- cgit v1.2.3