PowiedzmyJak to wyliczenie rodzajów w Haskell
flip :: (a->b->c) ->b->a->c
const ::d->e->d
typ (odwrotną const) byłoby
a=d,b=e,c=d
w
b->a->c
więc rodzaj byłoby
e->d->d
Ale do startu (mapa) jego
[Int]->[[a]]->[[a]]
więc nie rozumiem, w jaki sposób ghci ten oblicza. zrozumiałem [[a]] -> [[a]], ale dlaczego i jak [Int]?
edit: Na przykład, jeśli chcemy pisać w ghci
:t flip const
it would return b->c->c
i ghci by obliczyć, że jak ja.
Ale
map :: (a->b)->[a]->[b]
take :: Int->[c]->[c]
więc dlaczego jest mapa wziąć
[Int]->[[a]->[a]]
dlaczego [Int] W jaki sposób ghci obliczyć, że
To jest "[Int] -> [[a] -> [a]]", a nie "[Int] -> [[a]] -> [[a]]". Zwróć uwagę na różnicę w nawiasach kwadratowych. –