I wish there was a language or library that was willing to take the Haskell functionality and just give it all names like this.
type Mappable = Functor
type NotScaryFluffyThing = Monad
> I wish there was a language or library that was willing
> to take the Haskell functionality and just give it all
> names like this.
The article says "A list is a Functor". Now you're saying "Either is a Functor". But those two things don't have the same nature.
Maybe what the author meant "The  list constructor is a Functor"?
I'm not sure what is gained by garbling abstractions and reducing them to a subset of their potential interpretations.
The best way to say it is "The list type 'forms' a functor" or "The Either type 'forms' a functor". The fact that they form a functor implies that their map operation has a fixed set of properties, and these properties are independent of what exactly the data structure does and how it works.
In Haskell, a Functor actually consists of two parts: The type itself (f), which 'transforms' a type a into type "f a". ie. Maybe "applied" to Int gives "Maybe Int", a new simple type (let's handwave kinds away for now). In addition to that, the fmap function is required for Maybe to be a Functor. A Functor is defined by this ability to "add structure" to existing types and the mapping operation.
Seen this way, Either is clearly not a Functor: "Either Int" is not a simple type. However, "Either Int" is a functor: Either Int String forms a simple type, and you can implement fmap. In fact, that works for any type, so "Either a" is the functor as usually defined in Haskell.
class Container(val property:Int)
val mappedlist:List[Int] = list.map(x=>x.property)
val mappedOption:Option[Int] = option.map(x=>x.property)