3 ms·
For fun I was whipping up some haskell one-liners as I read along. You can just do: let fibs = 1 : 1 : [ fibs !! n + fibs !! (n - 1) | n <- [1..] ] for t
by substack 16y ago
For fun I was whipping up some haskell one-liners as I read along.
You can just do:
let fibs = 1 : 1 : [ fibs !! n + fibs !! (n - 1) | n <- [1..] ]
for the Fibonacci sequence and
take 10 $ iterate (succ . recip) 1
for the first 10 iterations of the continued fraction.
To me these read much more clearly but then I haven't written anything big in a lispy language yet.
- ihodes 16y agoThere are all sorts of ways to do it; for instance, I really like the following: (def fibo (map second (iterate (fn [[x y]] [y (+ x y)]) [0 1]))) I just went with a different version for the article to show another way of doing it that might be clearer to someone new to Clojure. As for understanding/ease of reading, the Haskell version is a little more alien to me, but that's because I haven't spent much time in Haskell. Once again, for your CF ex: (take 10 (iterate (comp inc /) 1)) Which gives ratios in Clojure, not doubles. Both elegant solutions, definitely. I just wanted to use my GCF, which could probably be made to look a little nicer as well. This post was more about playing around with the Golden Ratio than writing sexy code (though admittedly, I probably could have done better in many places!) Haskell is a really cool language: I'm making my way through Real World Haskell right now!