Hoogle Search

Within LTS Haskell 24.45 (ghc-9.10.3)

Note that Stackage only displays results for the latest LTS and Nightly snapshot. Learn more.

  1. concatMap :: forall a (m :: Nat) b (n :: Nat) . (a -> Vec m b) -> Vec n a -> Vec (n * m) b

    clash-prelude Clash.Prelude.Safe

    Map a function over all the elements of a vector and concatentate the resulting vectors.

    >>> concatMap (replicate d3) (1:>2:>3:>Nil)
    1 :> 1 :> 1 :> 2 :> 2 :> 2 :> 3 :> 3 :> 3 :> Nil
    

  2. imap :: forall (n :: Nat) a b . KnownNat n => (Index n -> a -> b) -> Vec n a -> Vec n b

    clash-prelude Clash.Prelude.Safe

    Apply a function of every element of a vector and its index.

    >>> :t imap (+) (2 :> 2 :> 2 :> 2 :> Nil)
    imap (+) (2 :> 2 :> 2 :> 2 :> Nil) :: Vec 4 (Index 4)
    
    >>> imap (+) (2 :> 2 :> 2 :> 2 :> Nil)
    2 :> 3 :> *** Exception: X: Clash.Sized.Index: result 4 is out of bounds: [0..3]
    ...
    
    >>> imap (\i a -> extend (bitCoerce i) + a) (2 :> 2 :> 2 :> 2 :> Nil) :: Vec 4 (Unsigned 8)
    2 :> 3 :> 4 :> 5 :> Nil
    
    "imap f xs" corresponds to the following circuit layout:

  3. smap :: forall (k :: Nat) a b . KnownNat k => (forall (l :: Nat) . () => SNat l -> a -> b) -> Vec k a -> Vec k b

    clash-prelude Clash.Prelude.Safe

    Apply a function to every element of a vector and the element's position (as an SNat value) in the vector.

    >>> let rotateMatrix = smap (flip rotateRightS)
    
    >>> let xss = (1:>2:>3:>Nil):>(1:>2:>3:>Nil):>(1:>2:>3:>Nil):>Nil
    
    >>> xss
    (1 :> 2 :> 3 :> Nil) :> (1 :> 2 :> 3 :> Nil) :> (1 :> 2 :> 3 :> Nil) :> Nil
    
    >>> rotateMatrix xss
    (1 :> 2 :> 3 :> Nil) :> (3 :> 1 :> 2 :> Nil) :> (2 :> 3 :> 1 :> Nil) :> Nil
    

  4. type TraceMap = Map String (TypeRepBS, Period, Width, [Value])

    clash-prelude Clash.Signal.Trace

    No documentation available.

  5. traceMap# :: IORef TraceMap

    clash-prelude Clash.Signal.Trace

    Map of traces used by the non-internal trace and dumpvcd functions.

  6. tmap :: forall (d :: Nat) a b . KnownNat d => (a -> b) -> RTree d a -> RTree d b

    clash-prelude Clash.Sized.RTree

    "tmap f t" is the tree obtained by apply f to each element of t, i.e.,

    tmap f (BR (LR a) (LR b)) == BR (LR (f a)) (LR (f b))
    

  7. concatMap :: forall a (m :: Nat) b (n :: Nat) . (a -> Vec m b) -> Vec n a -> Vec (n * m) b

    clash-prelude Clash.Sized.Vector

    Map a function over all the elements of a vector and concatentate the resulting vectors.

    >>> concatMap (replicate d3) (1:>2:>3:>Nil)
    1 :> 1 :> 1 :> 2 :> 2 :> 2 :> 3 :> 3 :> 3 :> Nil
    

  8. imap :: forall (n :: Nat) a b . KnownNat n => (Index n -> a -> b) -> Vec n a -> Vec n b

    clash-prelude Clash.Sized.Vector

    Apply a function of every element of a vector and its index.

    >>> :t imap (+) (2 :> 2 :> 2 :> 2 :> Nil)
    imap (+) (2 :> 2 :> 2 :> 2 :> Nil) :: Vec 4 (Index 4)
    
    >>> imap (+) (2 :> 2 :> 2 :> 2 :> Nil)
    2 :> 3 :> *** Exception: X: Clash.Sized.Index: result 4 is out of bounds: [0..3]
    ...
    
    >>> imap (\i a -> extend (bitCoerce i) + a) (2 :> 2 :> 2 :> 2 :> Nil) :: Vec 4 (Unsigned 8)
    2 :> 3 :> 4 :> 5 :> Nil
    
    "imap f xs" corresponds to the following circuit layout:

  9. smap :: forall (k :: Nat) a b . KnownNat k => (forall (l :: Nat) . () => SNat l -> a -> b) -> Vec k a -> Vec k b

    clash-prelude Clash.Sized.Vector

    Apply a function to every element of a vector and the element's position (as an SNat value) in the vector.

    >>> let rotateMatrix = smap (flip rotateRightS)
    
    >>> let xss = (1:>2:>3:>Nil):>(1:>2:>3:>Nil):>(1:>2:>3:>Nil):>Nil
    
    >>> xss
    (1 :> 2 :> 3 :> Nil) :> (1 :> 2 :> 3 :> Nil) :> (1 :> 2 :> 3 :> Nil) :> Nil
    
    >>> rotateMatrix xss
    (1 :> 2 :> 3 :> Nil) :> (3 :> 1 :> 2 :> Nil) :> (2 :> 3 :> 1 :> Nil) :> Nil
    

  10. concatMapAccumC :: forall (m :: Type -> Type) a accum b . Monad m => (a -> accum -> (accum, [b])) -> accum -> ConduitT a b m ()

    classy-prelude-conduit ClassyPrelude.Conduit

    concatMap with an accumulator.

Page 1022 of many | Previous | Next