27 Oct 2012 21:23
Overload function application? (was: foldr (.) id)
Greg Fitzgerald <garious <at> gmail.com>
2012-10-27 19:23:02 GMT
2012-10-27 19:23:02 GMT
Should library functions target Control.Category? We write for Num, IsString, and ListLike. Haskell overloads number literals and string literals, and awkwardly not List literals. Should Haskell overload function application too?
How cool would it be to be able to leverage all of Haskell's libraries, and effectively none of the runtime, by implementing instances for literals and function application? Say, for example, to generate a call graph, or make the language strict, or target LLVM more directly. Anyone tried this?
Thanks,
Greg
On Sat, Oct 27, 2012 at 11:39 AM, Greg Fitzgerald <garious <at> gmail.com> wrote:
> Alternatively: flip (foldr id)
Very cool, but...Prelude> import qualified Data.Foldable as FPrelude F> :t F.foldr idF.foldr id :: F.Foldable t => b -> t (b -> b) -> b{- Generalizing -}Prelude F> import qualified Control.Category as CPrelude F C> :t F.foldr (C..) C.idF.foldr (C..) C.id :: (F.Foldable t, C.Category cat) => t (cat b b) -> cat b b{- Sneaky type-specialization -}Prelude F C> :t F.foldr C.idF.foldr C.id :: F.Foldable t => b -> t (b -> b) -> bOn Sat, Oct 27, 2012 at 3:09 AM, Ross Paterson <ross <at> soi.city.ac.uk> wrote:Alternatively: flip (foldr id)On Fri, Oct 26, 2012 at 07:41:18PM +0100, Greg Fitzgerald wrote:
> I've recently found myself using the expression: "foldr (.) id" to
> compose a list (or Foldable) of functions. It's especially useful
> when I need to map a function over the list before composing. Does
> this function, or the more general "foldr fmap id", defined in a
> library anywhere? I googled and hoogled, but no luck so far.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe <at> haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe <at> haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
RSS Feed