Right rotate of tree in Haskell: how is it work?

Posted by Roman on Stack Overflow See other posts from Stack Overflow or by Roman
Published on 2010-06-10T06:17:09Z Indexed on 2010/06/10 6:23 UTC
Read the original article Hit count: 213

I don't know haskell syntax, but I know some FP concepts (like algebraic data types, pattern matching, higher-order functions ect).

Can someone explain please, what does this code mean:

data Tree ? = Leaf ? | Fork ? (Tree ?) (Tree ?)

rotateR tree = case tree of
  Fork q (Fork p a b) c -> Fork p a (Fork q b c)

As I understand, first line is something like Tree-type declaration (but I don't understand it exactly). Second line includes pattern matching (I don't understand as well why do we need to use pattern matching here). And third line does something absolutely unreadable for non-haskell developer. I've found definition of Fork as fork (f,g) x = (f x, g x) but I can't move further anymore.

© Stack Overflow or respective owner

Related posts about beginner

Related posts about syntax