Thanks. I am quite convinced actually (no sarchasm involved).
> On Fri, 18 Jan 2002, Cagdas Ozgenc wrote: > > > > the goal of type class is to allow overloading of function, so for example > > > id x = x is not subject to overloading => no use to put it in a type > > class. > > > > Because it doesn't do anything? > > I believe that (assuming of course that you aren't a simplicity fanatic > who programs only using the S, K, I combinators [1]) id is useful for > interfacing with very general functions which have an a->a argument which > isn't necessary for what you're doing, e.g., > > altSumsTransformedList :: (a->a) -> a-> [a] -> a > altSumsTransfromedList f e (x:xs) = f x - altSumsTransfromedList f e xs > > then you can get the simple alternating sum of the original list simply by > using > > altSumsTransfromedList id > > A much more commonly used example is > > flip f x y = f y x > > which doesn't seem to do much, but is actually very useful for things > use in things like foldr when you've already got a function which does > almost what you want but expects its arguments in the opposite order to > the one that foldr gives them in. These small functions are very useful, > and several of them have counterparts in the C++ STL binders. > > [1] this is a bad joke reference to the fact that `all functional programs > (under an appropriate encoding of the data) can be converted to an > equivalent form using just three elementary combinators, S (aka succ), K > (aka const) and I (aka id)'. > > ___cheers,_dave_________________________________________________________ > www.cs.bris.ac.uk/~tweed/|`...heat generated by its microprocessors will > email:[EMAIL PROTECTED]|slope upward exponentially, reaching the power > work tel:(0117) 954-5250 |density of a nuclear reactor before 2010'-Intel > _______________________________________________ Haskell-Cafe mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell-cafe