lens-3.5.1: Lenses, Folds and Traversals
real :: Simple Lens (Complex a) aSource
Access the realPart of a Complex number
>>> (1.0 :+ 0.0)^.real
(1.0 :+ 0.0)^.real
real :: Functor f => (a -> f a) -> Complex a -> f (Complex a)
imaginary :: Simple Lens (Complex a) aSource
Access the imaginaryPart of a Complex number
>>> (0.0 :+ 1.0)^.imaginary
(0.0 :+ 1.0)^.imaginary
imaginary :: Functor f => (a -> f a) -> Complex a -> f (Complex a)
polarize :: (RealFloat a, RealFloat b) => Iso (Complex a) (Complex b) (a, a) (b, b)Source
This isn't quite a legal lens. Notably the
view l (set l b a) = b
law is violated when you set a polar value with 0 magnitude and non-zero phase
as the phase information is lost. So don't do that!
Otherwise, this is a perfectly cromulent Lens.
traverseComplex :: Traversal (Complex a) (Complex b) a bSource
Traverse both the real and imaginary parts of a Complex number.
traverseComplex :: Applicative f => (a -> f b) -> Complex a -> f (Complex b)
Produced by Haddock version 2.12.0