[Haskell-beginners] Abstracting Data.List

Giacomo Tesio giacomo at tesio.it
Fri May 31 12:54:13 CEST 2013


Exactly what I Was looking for!

Thanks! :-D


Giacomo


On Fri, May 31, 2013 at 12:44 PM, Peter Hall <peter.hall at memorphic.com>wrote:

>
> http://hackage.haskell.org/packages/archive/ListLike/3.1.4/doc/html/Data-ListLike.html
>
> Peter
>
>
> On 31 May 2013 11:16, mukesh tiwari <mukeshtiwari.iiitm at gmail.com> wrote:
>
>> Hi Giacomo,
>> Data.List can be abstracted using Foldable and Traversable but
>> unfortunately I could not find the functions corresponding to head, take.
>>
>> Prelude Data.Traversable Data.Foldable> :t Data.Foldable.
>> Data.Foldable.Foldable    Data.Foldable.concatMap
>> Data.Foldable.foldl'      Data.Foldable.foldrM
>> Data.Foldable.minimum     Data.Foldable.sequenceA_
>> Data.Foldable.all         Data.Foldable.elem
>> Data.Foldable.foldl1      Data.Foldable.forM_
>> Data.Foldable.minimumBy   Data.Foldable.sequence_
>> Data.Foldable.and         Data.Foldable.find
>> Data.Foldable.foldlM      Data.Foldable.for_
>> Data.Foldable.msum        Data.Foldable.sum
>> Data.Foldable.any         Data.Foldable.fold
>> Data.Foldable.foldr       Data.Foldable.mapM_
>> Data.Foldable.notElem     Data.Foldable.toList
>> Data.Foldable.asum        Data.Foldable.foldMap
>> Data.Foldable.foldr'      Data.Foldable.maximum
>> Data.Foldable.or          Data.Foldable.traverse_
>> Data.Foldable.concat      Data.Foldable.foldl
>> Data.Foldable.foldr1      Data.Foldable.maximumBy   Data.Foldable.product
>> Prelude Data.Traversable Data.Foldable> :t Data.Traversable.
>> Data.Traversable.Traversable     Data.Traversable.for
>> Data.Traversable.mapAccumR       Data.Traversable.sequenceA
>> Data.Traversable.fmapDefault     Data.Traversable.forM
>> Data.Traversable.mapM            Data.Traversable.traverse
>> Data.Traversable.foldMapDefault  Data.Traversable.mapAccumL
>> Data.Traversable.sequence
>> Prelude Data.Traversable Data.Foldable> :i Foldable
>> class Foldable t where
>>   fold :: Data.Monoid.Monoid m => t m -> m
>>   foldMap :: Data.Monoid.Monoid m => (a -> m) -> t a -> m
>>   Data.Foldable.foldr :: (a -> b -> b) -> b -> t a -> b
>>   foldr' :: (a -> b -> b) -> b -> t a -> b
>>   Data.Foldable.foldl :: (a -> b -> a) -> a -> t b -> a
>>   foldl' :: (a -> b -> a) -> a -> t b -> a
>>   Data.Foldable.foldr1 :: (a -> a -> a) -> t a -> a
>>   Data.Foldable.foldl1 :: (a -> a -> a) -> t a -> a
>>       -- Defined in `Data.Foldable'
>> instance Foldable [] -- Defined in `Data.Foldable'
>> instance Foldable Maybe -- Defined in `Data.Foldable'
>> Prelude Data.Traversable Data.Foldable> :i Tr
>> Traversable  True
>> Prelude Data.Traversable Data.Foldable> :i Traversable
>> class (Functor t, Foldable t) => Traversable t where
>>   traverse ::
>>     Control.Applicative.Applicative f => (a -> f b) -> t a -> f (t b)
>>   sequenceA ::
>>     Control.Applicative.Applicative f => t (f a) -> f (t a)
>>   Data.Traversable.mapM :: Monad m => (a -> m b) -> t a -> m (t b)
>>   Data.Traversable.sequence :: Monad m => t (m a) -> m (t a)
>>       -- Defined in `Data.Traversable'
>> instance Traversable [] -- Defined in `Data.Traversable'
>> instance Traversable Maybe -- Defined in `Data.Traversable'
>> Prelude Data.Traversable Data.Foldable> :t foldMap
>> foldMap
>>   :: (Foldable t, Data.Monoid.Monoid m) => (a -> m) -> t a -> m
>>
>> -Mukesh
>>
>>
>> On Fri, May 31, 2013 at 2:26 PM, Giacomo Tesio <giacomo at tesio.it> wrote:
>>
>>> I'm looking for a class abstracting Data.List. I mean something that
>>> enable the use of say head, map, take and so on into different kind of
>>> types.
>>>
>>> Is there already something like that?
>>>
>>>
>>> Giacomo
>>>
>>> _______________________________________________
>>> Beginners mailing list
>>> Beginners at haskell.org
>>> http://www.haskell.org/mailman/listinfo/beginners
>>>
>>>
>>
>> _______________________________________________
>> Beginners mailing list
>> Beginners at haskell.org
>> http://www.haskell.org/mailman/listinfo/beginners
>>
>>
>
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://www.haskell.org/mailman/listinfo/beginners
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/beginners/attachments/20130531/dc695e3b/attachment.htm>


More information about the Beginners mailing list