Ich habe mich ein wenig mit SML befasst, kann dir aber auch keine Unterschiede zu den anderen Sprachen nennen, ich vermute aber, dass alles recht ähnlich abläuft.
Wozu diese geeignet sind, hast du sicher schon in Erfahrung gebracht. Gerade bei algorithmischen Programmen eignen sich funktionale Sprachen natürlich super, weil du sehr einfach rekursive Strukturen darstellen lassen kannst.
Zum Beispiel die Fakultät am Beispiel von SML:
Code:
fun fak(1) = 1
| fak(n) = n*fak(n-1);
> val fak = fn : int -> int
fak(5);
> val it = 120 : int
Die Zeilen mit dem ">" am Anfang sind Ausgaben des Interpretierers,
der reine Code beschränkt sich also auf:
Code:
fun fak(1) = 1
| fak(n) = n*fak(n-1);
Ebenso interessant sind logische Programmiersprachen wie Prolog,
aber diese bilden natürlich wieder ein ganz andere Kategorie.
mfg