Jag har läst ett par kurser på Chalmers där jag använt haskell (funktionell programmering, programspråk och kompilatorkonstruktion), och jäklar vad mycket bättre jag blivit på programmera av att lära mig tänka på detta lite annorlunda sätt.gottegrisen wrote: Jag tycker nog närmast att Haskell bordet förbjudas. Haskell är det absolut ruttnaste språket som någonsin tillverkats, den enda andledningen jag kan komma på för att de använder det på chalmers är en ren prestige fråga. Att lära sig Haskell för att kunna träna på rekursion känns också totalt meningslöst då man kan köra rekursion på alla språk.
+ När man kodar haskell blir man grym på rekursion, det blir helt naturligt - vilket gör det enkelt att tänka i rekursiva datastrukturer om det behövs. (Iteration finns knappt i haskell).
+ Haskell har lat evaluering, alltså ingenting räknas ut förrän det behövs - detta gör att man lätt kan ha oändligt stora datastrukturer (tex träd som man bara behöver klättra lite i för att få ut rätt resultat).
+ Eftersom haskell ligger mycket närmare matematik är det lättare att skriva helt korrekta program. Alltså program som går att bevisa att de fungerar som de skall. Det blir färre buggar med bra haskellprogram än med andra språk (aj, vad jag kommer att få skit för detta...)
- Haskell är ett elända att lära sig. Det tar ett tag innan man förstår tillräckligt mycket för att man skall kunna skriva ett enkelt program. Det är också skitsvårt att skriva ut en debugtext under exekveringens gång (pga lat evaluering och sideffektfri tjafs).
- Monader <- nån som kan förklara vad det är? :)
http://www.haskell.org/
Till er som inte sett haskell så ser tex en quicksort ut så här:
Code: Select all
qsort [] = []
qsort (x:xs) = qsort [y | y <- xs, y < x] ++ [x] ++ qsort [y | y <- xs, y >= x]