4 ms·
What does "from any type 'a' to any type 'b'" mean? That sounds like a range of types, but I don't see how that makes sense. Did you just mean that the map conv
by DougWebb 14y ago
What does "from any type 'a' to any type 'b'" mean? That sounds like a range of types, but I don't see how that makes sense. Did you just mean that the map converts from 'a' to 'b'?
- FreeFull 14y agoa and b are placeholders (type variables). They can be any type, for example Integer, or a Float. It doesn't matter. [a] is a list of a, [b] is a list of b. Map takes a function that takes an a and returns a b, and applies it to every element of [a] in order to produce the [b]. An example usage is map lessThanThree [1,2,3,4] In this case, map takes a function where a is an integer, and b is a boolean, then takes a list of integers and produces a list of booleans. The result is [True,True,False,False]
- jjaredsimpson 14y agoIt's also illuminating to note that haskell curries function application. This allows us to think of map as a function of one argument. map :: (a -> b) -> ([a] -> [b]) so instead of thinking that map takes a function and a list and applies that function to the list, we can think that map takes a function and "lifts" that functions argument and result types to the list type. This thinking leads us directly to Functors and fmap