by gigasquid on 10/11/19, 1:21 PM with 17 comments
by juliangamble on 10/12/19, 2:58 AM
> * What the Second Ideal of Focus, Flow and Joy Means to Me Relearning Coding: How Coding Mostly Left My Daily Life in 2008, But Came Back in 2016 (or If I Can Learn Clojure, Anyone Can)
> * Why I Love LISPs Now
> * Functional Programming and Immutability (and John Carmack)
> * A Mistake I’ve Been Making Since Grad School, and How I Fixed It: Composability
> * The Epiphany I Had Reading “An Introduction to React in 2019 (For People Who Know Just Enough jQuery To Get By)”
> * What Rich Hickey Says About Simplicity: Where The First Ideal Of Locality and Simplicity Comes From
> * Solving Business Problems, Not Solving Puzzles—Why I Detest Doing Infrastructure Work These Days
> * Lastly, the REPL…the Ultimate in Fast and Fun Feedback Loops!
> * The Amazing Clojure Community, Parting Thoughts, and What I’d Like To Write About in the Future
by dzpower on 10/12/19, 6:57 AM
Gene Kim's Clojure example:
; input is JSON string: "{foo: 2}"
(defn xform [s]
(-> (js/JSON.parse s)
js->clj
(update "foo" + 2)
clj->js
js/JSON.stringify))
Racket equivalent: #lang racket
(require threading json)
; input is (xform "{\"foo\" : 2 }")
(define (xform s)
(~> s
string->jsexpr
(hash-update 'foo (λ (x) (+ 2 x)))
jsexpr->string))
by obfk on 10/12/19, 1:57 PM
by seisvelas on 10/12/19, 5:44 AM
Might someone who's played with both give me some pro's and con's of Racket vs Clojure?
by zvrba on 10/12/19, 5:44 AM
I disagree. I rarely find myself slowed down by the grammar or operator precedence in Java and C#. In C++, only when I have to do something rather esoteric (pointer-to-member, member function template specializations, etc.).
On the other hand, I critically rely on types. The IDE is able to narrow down suggestions about applicable methods to a handful. But since `js->clj` is a function `string -> map` (a very generic signature), there must be hundreds of them with the same signature. Context-sensitive discoverability with the help of IDE becomes nearly useless.
Yes, that's how I learn APIs these days. Types, intellisense + reading the documentation to learn about possible edge cases. I cannot imagine being productive in something like Clojure.
I also find Java 11 + VAVR rather pleasant to work with.