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 }