Hacker News new | ask | show | jobs
by Jtsummers 1771 days ago
Out of curiosity, what are the crazy amounts of symbols present in, say, Erlang, SML, Scheme, or Common Lisp?
4 comments

Common Lisp is about as functional as modern C++, it's a multi paradigm language by design.
Well, for example standard Common Lisp defines 978 symbols. ;) At least that's what (length (apropos-list "" "CL")) told me.
Parentheses count as symbols.
In a LISP, the parenthesis are structural syntax. Where other languages use curly braces, whitespace, square-brackets, and usually a combination thereof; LISP simply uses parenthesis.
In Lisp parentheses are used as a syntax for nested lists. Lisp programs then are written on top of that with a syntax, which is structural on top of lists. Most other languages don't use a primitive data structure for encoding programs (other than text).
Are there crazy amounts of them? Compared to mainstream programming languages?
We're talking about typed FP so only SML in your list really counts. So let's see: functors, polymorphism, higher-kinded types (does SML have those?), Hindley-Milner type inference, etc. Then for Haskell (the main topic of the linked article), bring in a bunch of unfamiliar algebra such as the notorious monoid on the category of endofunctors. It is actually worth understanding that. I liked this article (prerequisite: some exposure to Haskell):

https://www.haskellforall.com/2012/08/the-category-design-pa...

This is also good:

https://en.wikibooks.org/wiki/Haskell/Category_theory

> We're talking about typed FP so only SML in your list really counts.

I like your sense of humor.

Appeal to Wikipedia Fallacy: https://en.wikipedia.org/wiki/Functional_programming

LISP certainly shows up in the discussion. It's even called the first functional programming language!

There's not really an official definition of FP. There are some proposed ones that involve types and some that don't involve them. Mainly though, this is a thread about the linked article, which is about the tribulations that the author had learning Haskell. Most of those tribulations were with the type system and I think that matches most people's experience. You can't transplant it to Lisp.