kempe-0.1.0.0: lib/gaussian.kmp
; Gaussian integers
type Gaussian { Gaussian Int Int }
unGaussian : Gaussian -- Int Int
=: [
{ case
| Gaussian ->
}
]
grp : a b c -- b a c
=: [ dip(swap) ]
; perhaps unimpressive but I use this to test sizing
add : Gaussian Gaussian -- Gaussian
=: [ dip(unGaussian) unGaussian grp + dip(+) Gaussian ]
conjugate : Gaussian -- Gaussian
=: [ unGaussian ~ Gaussian ]
%foreign kabi add
%foreign kabi conjugate