A difference between Haskell and Common Lisp
chrisdone.com
A difference between Haskell and Common Lisp
1–10 of 203 posts
Re: A difference between Haskell and Common Lisp
#2Re: A difference between Haskell and Common Lisp
#3Rather than
(remove-if-not #'p xs :count 5 :start 3)
It seems to me like most Clojure users would do something like (->> xs (drop 3) (filter p) (take 5))
which is much closer to take 5 . filter p . drop 3Re: A difference between Haskell and Common Lisp
#4Is this really a philosophical difference? Granted, I've only used Clojure as far as Lisps go, but composability seems to be something that's emphasized. Rather than (remove-if-not #'p xs :count 5 :start 3) It seems to me like most Clojure users would do something like (->> xs (drop 3) (filter p) (take 5)) which is much closer to take 5 . filter p . drop 3
Re: A difference between Haskell and Common Lisp
#5The complex, do-it-all-in-one-huge macro is a Common Lispism, not a Lispism.
Secondly, Clojure, like Haskell, is focused on sequence abstractions, not lists. Sequences can include collections, streams, observables, sockets and many other kinds of process that can be modelled as an event stream.
Re: A difference between Haskell and Common Lisp
#6Is this really a philosophical difference? Granted, I've only used Clojure as far as Lisps go, but composability seems to be something that's emphasized. Rather than (remove-if-not #'p xs :count 5 :start 3) It seems to me like most Clojure users would do something like (->> xs (drop 3) (filter p) (take 5)) which is much closer to take 5 . filter p . drop 3
Unlike CL/EL, Clojure is lazy by default. So it's closer to Haskell in that regard.
Re: A difference between Haskell and Common Lisp
#7Is this really a philosophical difference? Granted, I've only used Clojure as far as Lisps go, but composability seems to be something that's emphasized. Rather than (remove-if-not #'p xs :count 5 :start 3) It seems to me like most Clojure users would do something like (->> xs (drop 3) (filter p) (take 5)) which is much closer to take 5 . filter p . drop 3
Unlike CL/EL, Clojure is lazy by default. So it's closer to Haskell in that regard.
Re: A difference between Haskell and Common Lisp
#8Re: A difference between Haskell and Common Lisp
#9Re: A difference between Haskell and Common Lisp
#10Is this really a philosophical difference? Granted, I've only used Clojure as far as Lisps go, but composability seems to be something that's emphasized. Rather than (remove-if-not #'p xs :count 5 :start 3) It seems to me like most Clojure users would do something like (->> xs (drop 3) (filter p) (take 5)) which is much closer to take 5 . filter p . drop 3
#(->> % (drop 3) (filter p) (take 5))
Is equivalent to: take 5 . filter p . drop 3