Why did father of Clojure say that Scheme's true/false are broken?

后端 未结 3 1641
长发绾君心
长发绾君心 2020-12-14 06:42

In this video, Rich Hickey introduced Clojure for Lisp programmers.

At time 01:10:42, he talked about nil/false/end-of-sequence/\'() among Clojure/Common Lisp/Scheme

3条回答
  •  抹茶落季
    2020-12-14 07:22

    It strikes me you'd rather see it from the horse's mouth, so here's a choice extract from a message Rich posted:

    Scheme #t is almost completely meaningless, as Scheme conditionals test for #f/non-#f, not #f/#t. I don't think the value #f has much utility whatsoever, and basing conditionals on it means writing a lot of (if (not (null? x))... where (if x... will do in Clojure/CL, and a substantial reduction in expressive power when dealing with sequences, filters etc.

    The links in that message are also worthwhile, though the second one may be a bit poetic.

提交回复
热议问题