cs_lang:ocaml
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
cs_lang:ocaml [2011/07/12 09:32] – cedric | cs_lang:ocaml [2012/04/29 11:44] (current) – cedric | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Presentation ====== | ||
+ | ===== Paradigm ==== | ||
+ | * multi-paradigm: | ||
+ | |||
+ | ===== Typing discipline ===== | ||
+ | * static typed; | ||
+ | * strongly typed; | ||
+ | * inferred. | ||
+ | |||
+ | |||
+ | ====== Learning Objective Caml ====== | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | |||
+ | |||
====== Simple examples ====== | ====== Simple examples ====== | ||
+ | ===== Increment a number ===== | ||
+ | <code ocaml> | ||
+ | # let inc n = n+1;; | ||
+ | val inc : int -> int = <fun> | ||
+ | |||
+ | # inc 2;; | ||
+ | - : int = 3 | ||
+ | |||
+ | |||
+ | # Alternative: | ||
+ | # let inc = (+) 1;; | ||
+ | val inc : int -> int = <fun> | ||
+ | </ | ||
+ | |||
+ | ==== Equivalent in Python ==== | ||
+ | <code python> | ||
+ | >>> | ||
+ | ... | ||
+ | |||
+ | >>> | ||
+ | 3 | ||
+ | </ | ||
+ | |||
===== Great common divisor ===== | ===== Great common divisor ===== | ||
<code ocaml> | <code ocaml> | ||
- | let rec pgcd a b = match (a mod b) with | + | # let rec gcd a b = match (a mod b) with |
| 0 -> b | | 0 -> b | ||
- | | c -> pgcd b c;; | + | | c -> gcd b c;; |
+ | val gcd : int -> int -> int = < | ||
+ | |||
+ | # gcd 77 42;; | ||
+ | - : int = 7 | ||
</ | </ | ||
+ | ==== Equivalent in Python ==== | ||
+ | <code python> | ||
+ | def gcd(a, b): | ||
+ | while b != 0: | ||
+ | (a, b) = (b, a%b) | ||
+ | return a | ||
+ | </ | ||
===== Parity ===== | ===== Parity ===== | ||
<code ocaml> | <code ocaml> | ||
let rec parity = function | let rec parity = function | ||
| [] -> [] | | [] -> [] | ||
- | | x::t -> (x mod 2 == 0)::(func t);; | + | | x::l -> (x mod 2 == 0)::(parity l);; |
val func : int list -> bool list = <fun> | val func : int list -> bool list = <fun> | ||
cs_lang/ocaml.1310455933.txt.gz · Last modified: 2011/07/12 09:32 by cedric