News for hackers. Stuff that matters.
Re:Why I Switched from Python to Clojure (2016) by pmoriarty on Sunday March 24, 2019 @04:56PM (#19478724)
"I instantly discard any language with a Lisp-like syntax. I just cannot work with it."

I feel the opposite. I avoid any language without a Lisp-like syntax, since its absence is a serious handicap which unnecessarily complicates code and makes it less readable.

I also much prefer the Lisp idiom of using meaningful function and variable names, vs the one-letter names and crypitic operators that are so common in Haskell, OCaml, and SML.

Re:Why I Switched from Python to Clojure (2016) by tombert on Sunday March 24, 2019 @08:33PM (#19479551)
I agree; once I beat the initial scariness of Lisp, I found it hard to go to any non-Lisp language.

Macros, while easy to abuse, are kind of a game-changer; the ability to add new semantics to a language make it borderline impossible for me to go to any language that doesn't have a good macro system.

I started with Clojure, which I still really enjoy, but due to how much I grew to love the `define-syntax` system in Chicken Scheme, that's become my latest weapon of choice.

Re:Why I Switched from Python to Clojure (2016) by endgame on Sunday March 24, 2019 @06:53PM (#19479238)
Bear in mind that often the reason Haskell code uses one-letter names (and this is possibly true for the other MLs) is that your types can be so generic that you can write useful functions without knowing what you're working on. In such situations, `x` is just as good as `thing`, as far as names are concerned.

As for the operators: they are a visual language. We do not speak our punctuation aloud in English, and we use small marks to guide the reader's eye. Often, Haskell operators as similar, and there is a definite pattern.

f $ x means "f applied to x"

f <$> x means "map f over x"

In general, the <> around an operator lifts it to work over a structure. Similarly:

x & f means "f applied to x"

x <&> f means "map f over x"

For the applicative operators like <star>, star> and <star (where "star" should be an asterisk but I can never work out the formatting on this forum), the operators "point" at the values being retained. And so on.

Re:Why I Switched from Python to Clojure (2016) by sooheon on Sunday March 24, 2019 @09:00PM (#19479637)
It's cool, and I wouldn't be sad to work with Haskell by any means, but I still think there's an elegance to lisp syntax that can't be beat. There are very few language level rules, everything is composable building blocks.