Var tvungen att kolla in denna kurs jag också Har redan läst "Programming in Scala" av Martin Odersky, så det borde ju vara hyfsat lätt ett tag...
Men han försökte verkligen slå knut på sig själv när han skulle ge exempel på vilka språk som är funktionella. Med den definition han gav, funktioner ska vara första ordningens objekt, så är även C++ (nya standarden) och senaste versionen av Objective C också funktionella språk...
De flesta puritaner inom funktionella språk brukar peka på "pattern matching" (av funktionsargument) som den avgörande finessen som ett "riktigt" funktionell språk måste ha, men då faller ju allt utom Haskell, ML, Ocaml, F# och Erlang bort från hans lista så det fungerar ju inte när han vill pusha för Scala
Sedan gjorde han missen som nästan alla som pushar för funktionella språk gör: hävdar att funktionella språk är väldigt bra för "parallel programming" vilket är helt fel då de flesta funktionella språk suger på detta jämfört med t.ex. C. Däremot är språk som använder immutable data, vilket i princip alla funktionella språk gör som förval, väldigt bra för "concurrent programming".
Parallel programming = effektivt utnyttja flera CPU-kärnor för att snabbare lösa ett givet problem
Concurrent programming = ett sätt att konstruera sitt program genom att ha flera samtida aktiviteter som helt eller delvis kan köra oberoende av varandra
Sådana här kurser brukar definitivt vara värd tiden det tar att gå igenom dem, även om man har hyfsad koll på språket / problem-domänen redan innan, då man alltid snappar upp saker man inte sett eller tänkt på tidigare. Så tack för länken!