News for hackers. Stuff that matters.
Re:Haskell vs. Clojure (2014) by tsm on Wednesday September 14, 2016 @04:53PM (#12501117)
Clojure's immutable types mean just that—the values are immutable (e.g., in CL you could do (defvar x 42) (setf x 84), but in Clojure the equivalent is not allowed).

But there are many more side effects than changing variables. Clojure makes no guarantees that a given function is referentially transparent, nor does it promise that a given function doesn't write to stdout/stderr, read from stdin, change the file system, make a network connection, send missiles to foreign countries, etcetera.

Re:Haskell vs. Clojure (2014) by sarnowski on Wednesday September 14, 2016 @05:10PM (#12501233)
Not arguing that the following method can be trusted as much as in Haskell but properly used also prevents this kind of scenario:

https://clojuredocs.org/clojure.core/io℅21

The 'io!' macro marks a code block to have side effects which prevents using it in a STM transaction as 'dosync' might need to execute the functions multiple times in case of conflicts during the optimistic locking.

Re:Haskell vs. Clojure (2014) by catnaroek on Wednesday September 14, 2016 @07:17PM (#12502038)
> properly used

In the sense C programmers use the term? Why should humans be trusted with identifying all operations that can't be safely performed within a transaction?