Ik moet sinds deze week Haskell leren voor mijn opleiding. Vol goede moed ben ik dus aan de slag gegaan.
De (aan mezelf gestelde) opdracht luidt:
Vind alle delers van een bepaald getal die kleiner of gelijk zijn dan de wortel van dat getal.
In opgave2.hs staat:
Helaas levert dit een foutmelding op bij het uitvoeren:
Als ik in de functie delers2 een van de twee N's vervang door een constante doet 'ie zijn werk wel.
Wat is hier fout aan?
(op google zoeken op Unresolved overloading + haskell levert me veel schijnbaar ongerelateerde hits op)
Ik gebruik Hugs voor windows, maar heb (zoals verwacht) dezelfde fouten op linux en cygwin.
De (aan mezelf gestelde) opdracht luidt:
Vind alle delers van een bepaald getal die kleiner of gelijk zijn dan de wortel van dat getal.
In opgave2.hs staat:
Haskell:
1
2
3
4
5
| -- Is x een deler van y? isDeler x y = (y `rem` x ) == 0 -- get alle delers < sqrt n delers2 n = filter (`isDeler` n) [1..(truncate (sqrt n))] |
Helaas levert dit een foutmelding op bij het uitvoeren:
code:
1
2
3
4
| Main> delers2 1599 ERROR - Unresolved overloading *** Type : (Floating a, Integral a, RealFrac a) => [a] *** Expression : delers2 1599 |
Als ik in de functie delers2 een van de twee N's vervang door een constante doet 'ie zijn werk wel.
Wat is hier fout aan?
(op google zoeken op Unresolved overloading + haskell levert me veel schijnbaar ongerelateerde hits op)
Ik gebruik Hugs voor windows, maar heb (zoals verwacht) dezelfde fouten op linux en cygwin.
Localhost, sweet localhost