translating tweaks
[lambda.git] / translating_between_OCaml_Scheme_and_Haskell.mdwn
index f78c1b7..7b66cb3 100644 (file)
@@ -1,5 +1,3 @@
-##Translating between OCaml, SML, and Haskell##
-
 The functional programming literature tends to use one of four languages: Scheme, OCaml, Standard ML (SML), or Haskell. With experience, you'll grow comfortable switching between these. At the beginning, though, it can be confusing.
 
 The easiest translations are between OCaml and SML. These languages are both derived from a common ancestor, ML. For the most part, the differences between them are only superficial. [Here's a translatio nmanual](http://www.mpi-sws.org/~rossberg/sml-vs-ocaml.html).
@@ -8,12 +6,10 @@ In some respects these languages are closer to Scheme than to Haskell: Scheme, O
 
 On both sides, however, the non-default evaluation order can also be had by using special syntax. And in other respects, OCaml and SML are more like Haskell than they are like Scheme. For example, OCaml and SML and Haskell all permit you to declare types and those types are *statically checked*: that is, your program won't even start to be interpreted unless all the types are consistent. In Scheme, on the other hand, type-checking only happens when your program is running, and the language is generally much laxer about what it accepts as well typed. (There's no problem having a list of mixed numbers and booleans, for example... and you don't need to wrap them in any sum type to do so.)
 
-Additionally, the syntax of OCaml and SML is superficially much close to Haskell's than to Scheme's.
+Additionally, the syntax of OCaml and SML is superficially much closer to Haskell's than to Scheme's.
 
 ##Comments, Whitespace, and Brackets##
 
-*       
-
                -- this is a single line comment in Haskell
 
                {- this