From: Jim Pryor Date: Sat, 4 Dec 2010 15:15:39 +0000 (-0500) Subject: translating tweaks X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=commitdiff_plain;h=047287e7095a4f7001b9b7154a08da7198e45499;hp=e8b64639978778d2e79cf05bb476f42fa1c9527c translating tweaks Signed-off-by: Jim Pryor --- diff --git a/translating_between_OCaml_Scheme_and_Haskell.mdwn b/translating_between_OCaml_Scheme_and_Haskell.mdwn index ed2ce4a1..ea4079e9 100644 --- a/translating_between_OCaml_Scheme_and_Haskell.mdwn +++ b/translating_between_OCaml_Scheme_and_Haskell.mdwn @@ -145,7 +145,7 @@ We will however try to give some general advice about how to translate between O * In Haskell, you say a value has a certain type with: `value :: type`. You express the operation of prepending a new `int` to a list of `int`s with `1 : other_numbers`. In OCaml it's the reverse: you say `value : type` and `1 :: other_numbers`. -* In Haskell, type names and constructors both begin with capital letters, and type variables always appear after their constructors, in Curried form. And the primary term for declaring a new type is `data` (short for [[!wikipedia algebraic datatype]]). So we have: +* In Haskell, type names and constructors both begin with capital letters, and type variables always appear after their constructors, in Curried form. And the primary term for declaring a new type is `data` (short for [[!wikipedia algebraic data type]]). So we have: data Either a b = Left a | Right b; data FooType a b = Foo_constructor1 a b | Foo_constructor2 a b;