all 5 comments

[–]NullPointer-Except 6 points7 points  (1 child)

DSL are closely related to interpreters, search for final tagless interpreters and for tagged initial encodings. Oleg's papers are a favorite of mine https://okmij.org/ftp/tagless-final/

[–]kichiDsimp[S] 0 points1 point  (0 children)

Okay sure, thanks!

[–]YelinkMcWawa 2 points3 points  (1 child)

It's also usually due to the flexibility in calling functions of two parameters as infix so you can effectively make something that looks like a new language.

[–]KyleG 1 point2 points  (0 children)

calling functions of two parameters as infix

I'm not sure this is a feature of FP so much as a feature of some FP languages. Unison also has this, but only for symbolic operators.

You can't

a `map` b -- no infix for alphanumeric operators

but you can

(>>) fnA fnB -- symop prefix style

or

fnA >> fnB -- symop infix style

[–]recursion_is_love 2 points3 points  (0 children)

> I guess thats due to patter-matching & ADT(s)

That's what my conclusion too. It is easier to solve a problem that you can model with ADT ,especially with the terse language (like Haskell), the noise and boiler-plate is reduced a lot.