X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=rosetta2.mdwn;h=ab2de7d68507b165b15cb7f37f1e2b52233caf39;hp=c37f222812e3d31e43415583ba7ad8c406f31ed0;hb=67cb14b0d6067d3024d34c8e72febd07b8f33b3f;hpb=f40bb9987d5f57b2013281a631351c535c5c93c0 diff --git a/rosetta2.mdwn b/rosetta2.mdwn index c37f2228..ab2de7d6 100644 --- a/rosetta2.mdwn +++ b/rosetta2.mdwn @@ -1,5 +1,19 @@ ## 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.*