Also, my practical-oriented blog posts on the topic in .net (referenced in my own answer on that page):
http://www.sparxeng.com/blog/software/an-example-of-what-hig... http://www.sparxeng.com/blog/software/higher-kinded-fun-in-h...
let amplify x f = fmap (x *) f
amplify 2 [1,2,3]
>> [2,4,6]
cos pi
>> 1.0
let doublecos = amplify 2 cos
doublecos pi
>> 2.0
You can't do anything that operates so generically in a language without HKTs.
All that said, I don't find them all that useful in day-to-day work.
Also, my practical-oriented blog posts on the topic in .net (referenced in my own answer on that page):
http://www.sparxeng.com/blog/software/an-example-of-what-hig... http://www.sparxeng.com/blog/software/higher-kinded-fun-in-h...