>>> import Prelude (Float) >>> import InfBackprop (call, derivative) >>> call (/) (6, 3) :: Float 2.0
>>> import Debug.SimpleExpr.Expr (variable) >>> x = variable "x" >>> y = variable "y" >>> derivative (/) (x, y) (1·(1/y),1·(-(x)·(1/(y·y))))
>>> execState (do _1 //= c; _2 //= d) (a,b) (a / c,b / d)
(//=) :: (MonadState s m, Fractional a) => Setter' s a -> a -> m () (//=) :: (MonadState s m, Fractional a) => Iso' s a -> a -> m () (//=) :: (MonadState s m, Fractional a) => Lens' s a -> a -> m () (//=) :: (MonadState s m, Fractional a) => Traversal' s a -> a -> m ()
>>> (a,b) & _1 //~ c (a / c,b)
>>> (a,b) & both //~ c (a / c,b / c)
>>> ("Hawaii",10) & _2 //~ 2 ("Hawaii",5.0)
(//~) :: Fractional a => Setter' s a -> a -> s -> s (//~) :: Fractional a => Iso' s a -> a -> s -> s (//~) :: Fractional a => Lens' s a -> a -> s -> s (//~) :: Fractional a => Traversal' s a -> a -> s -> s
m//[((i,i), 0) | i <- [1..n]]is the same matrix, except with the diagonal zeroed. Repeated indices in the association list are handled as for array: Haskell 2010 specifies that the resulting array is undefined (i.e. bottom), but GHC's implementation uses the last association for each index.