> What's the point of learning abstract languages like SML and LISP which have no practical purposes?

What's the point of learning abstract languages like SML and LISP which have no practical purposes?

Posted at: 2014-12-18 
I get that it teaches more theory, but in reality all it does is frustrate and bore computer science students to death.

I've never been exposed to SML, but I had to take a course in LISP (Scheme, actually) in College. That was 20+ years ago, and I've certainly never been paid to program in LISP/Scheme since then. But it was a worthwhile course to take.

LISP makes you think about programming differently. It is very different from procedural languages like C or PASCAL. And it is also different from Object Oriented languages like JAVA or C++.

LISP is the Grand Daddy of Functional programming (see link). I learned what a Lambda expression was in college, then promptly did nothing with them for 20 years.

Today, there are a number of functional programming languages. But more importantly, functional programming concepts have been finding there way into modern programming languages.

Microsoft added support for functional programming to the .NET framework in 2007. After a 20 year hiatus, lambda expressions were the new new thing in my favorite programming language.

C++ added lambda expressions and some functional programming constructs 4 years later with C++11.

Java added lambda expressions and other functional programming concepts 7 years later, with Java 8.

Sometimes thinking differently about computing in theory fosters ideas that get incorporated into practical tools that practical programmers use in the real world. It doesn't hurt if you are already familiar with the concepts.

LISP was OK, in fact pleasant (Scheme), compare to the nightmare that is Prolog at the latter part of that course; but LISP/Scheme was a good tour-de-force on recursion, as for Prolog, it is at least a theoretical backbone of alternative to SQL.

SML is just little point in it. But suck it up, that's the syllubus you have.

I get that it teaches more theory, but in reality all it does is frustrate and bore computer science students to death.