Quando si chiede per il tipo di [Int]
e []
in Haskell ottengo:Chiedendo tipo di un tipo a Scala vs Haskell
Prelude> :k [Int]
[Int] :: *
Prelude> :k []
[] :: * -> *
che ha un senso: il primo è un tipo e il secondo è un tipo più alto di tipo.
Ma quando faccio lo stesso in Scala:
scala> :k -v List[Int]
scala.collection.immutable.List's kind is F[+A]
* -(+)-> *
This is a type constructor: a 1st-order-kinded type.
scala> :k -v List
scala.collection.immutable.List's kind is F[+A]
* -(+)-> *
This is a type constructor: a 1st-order-kinded type.
... si dice entrambi sono tipi kinded più elevati. Perché il primo non è classificato come un tipo corretto? Qual è la ragione di questa differenza?
sembra che il primo proprio non lo fa vedere * * la 'int' (si parla anche di 'scala.collection.immutable.List' – Carsten