News for hackers. Stuff that matters.
Re:On F# code readability by ufo on Monday March 04, 2013 @03:06PM (#5320498)
I really like this analogy. I think a good example of it is the following code for red-back trees:

    balance :: Color -> RBTree a -> a -> RBTree a -> RBTree a
    balance B (Fork R (Fork R a x b) y c) z d = Fork R (Fork B a x b) y (Fork B c z d)
    balance B (Fork R a x (Fork R b y c)) z d = Fork R (Fork B a x b) y (Fork B c z d)
    balance B a x (Fork R b y (Fork R c z d)) = Fork R (Fork B a x b) y (Fork B c z d)
    balance B a x (Fork R (Fork R b y c) z d) = Fork R (Fork B a x b) y (Fork B c z d)
    balance k a x b = Fork k a x b
The lhs does the dirty work of identifying the relevant bits in the tree and in the rhs things get rebalanced in a similar form.

(Another thing I find amusing in this example is that its one of the few examples of Haskell code where you can't get around the "copypasting" by using `let` or `where`)

There are no comments on this comment yet.