What's the difference between a function and a functor in Haskell? Only definition?
问题 In Haskell, when writing a function, it means we map something(input) to another thing(output). I tried LYAH to understand the definition of Functor: seems just the same like a normal Functor. Is there any restriction that a function could be called a Functor? Is Functor allowed to have I/O or any other side effect? If in Haskell, "everthing is a function", then what's the point of introducing the "Functor" concept? A restricted version of function, or an enhancement version of a function?