Am 12.09.2014 um 11:42 schrieb Alois Cochard:

> The only thing I can tell you is that I use Arrow a lot to map element of a
> tuple, and that is really neat (took me a while though to get the signature
> of the method and map to the instance defined).
>
> Basically:
> f *** g = \(a, b) -> (f a, g a)
>
> Now that I got this one, I can see the more general abstraction and that
> looks extremely powerful.

This means using (***) for the instance Arrow (->), which is not really 
spectacular. If you want to abstract at all, the Bifunctor class might 
be closer. I have the (***) as mapPair in my utility library:
 
http://hackage.haskell.org/package/utility-ht-0.0.10/docs/Data-Tuple-HT.html


A much more interesting application of Arrows is this: You can express 
causal audio signal processors using Arrows. Fortunately the Arrow 
combinators preserve causality. If you use feedback, a causal signal 
processor warrants that there are no deadlocks. A causal signal 
processor is also required for real-time processing.

See for instance:
    http://arxiv.org/abs/1004.4796
    http://haskell.cs.yale.edu/?post_type=publication&p=573

http://www.haskell.org/haskellwiki/Causal_Commutative_Arrows


-- 

Read the whole topic here: Haskell Art:
http://lurk.org/r/topic/5Hdhs1i3KTvq2DDavuexeW

To leave Haskell Art, email haskell-...@group.lurk.org with the following email 
subject: unsubscribe

Reply via email to