| Uutiset | Koodikirjasto | Wiki | Keskustelut | FAQ | Info |
Fibonacci (OCaml)empty 14.09.03 12:41 Laskee fibonaccin lukujonon n:nnen jäsenen. Kieli: Objective Caml (www.ocaml.org).
(* Hidas tapa. Määritelmän läheinen. *) let rec fib n = match n with 0 -> 1 | 1 -> 1 | _ -> fib (n - 2) + fib (n - 1);; (* Nopea tapa. Lasketaan toisesta suunnasta. *) let fib2 n = if n < 2 then 1 else let rec loop nnow nto n1 n2 = if nnow >= nto then n1 + n2 else loop (nnow + 1) nto (n2 + n1) n1 in loop 2 n 1 1;; stWasm1.0 10:56 25.10.04 Objective Caml? En ole ikinä kuullut ptman 17:53 5.10.05 Hieno kieli. Opiskelemisen arvoinen. Laajentaa ajattelua, kuten esimerkiksi Lisp. mylläri 20:15 22.1.07 Hieman yksinkertaisemminkin voi tehdä. Muuttujan n näkyvyys on koko fib2:n määritelmä. Parin käyttö myös lienee selvempää. (* Nopea tapa. Lasketaan toisesta suunnasta. *) let fib2 n = if n < 2 then 1 else let rec loop count (n1, n2) = if count >= n then n1 + n2 else loop (count + 1) (n2 + n1, n1) in loop 2 (1, 1);; Microsoftin F# on muuten melkein sama kieli kuin Objective Caml. Ja huomasin juuri vastaavani neljättä vuotta vanhaan postaukseen... |
![]() Haku
|