DiciamoCome è il calcolo di tipi in Haskell
flip :: (a->b->c) ->b->a->c
const ::d->e->d
tipo di (const Flip) sarebbe
a=d,b=e,c=d
in
b->a->c
modo che il tipo sarebbe
e->d->d
Ma per (mappa introito) la sua
[Int]->[[a]]->[[a]]
quindi non ho capito come il ghci questo calcolo. ho capito [[a]] -> [[a]] ma perché e come [Int]?
edit: ad esempio se avessimo scriviamo in ghci
:t flip const
it would return b->c->c
e ghci sarebbe calcolare che come ho fatto io.
Ma
map :: (a->b)->[a]->[b]
take :: Int->[c]->[c]
quindi perché è mappa prendere
[Int]->[[a]->[a]]
perché [Int] come hanno fatto i ghci calcolano che
È '[Int] -> [[a] -> [a]]', non '[Int] -> [[a]] -> [[a]]'. Notare la differenza tra parentesi quadre. –