tweaks
[lambda.git] / rosetta2.mdwn
index c37f222..d4b6a02 100644 (file)
@@ -1,5 +1,20 @@
 ## More detailed differences between Scheme, OCaml, and Haskell ##
 
-*Will add this later, as we learn more concepts.*
+Here is comparison of the syntax for declaring types in Haskell and OCaml:
 
+    -- Haskell
+    data Pretty a b = Lovely a | Cute b ClothingModule.ButtonType
+    newtype Pretty a b = Pretty a b Int
+    newtype Pretty a b = Pretty { unPretty a }
+    type Pretty a b = (a, b)
 
+    (* OCaml *)
+    type ('a,'b) pretty = Lovely of 'a | Cute of 'b * ClothingModule.ButtonType
+    type ('a,'b) pretty = Pretty of 'a * 'b * int
+    type ('a,'b) pretty = Pretty of 'a
+    type ('a,'b) pretty = 'a * 'b
+
+
+*Will explain later, and add more material.*
+
+Until we do, have a look at our [page on translating between OCaml Scheme and Haskell](http://lambda1.jimpryor.net/translating_between_OCaml_Scheme_and_Haskell) from the first time we offered this seminar.