0 people like it.

Norvig's Spelling Corrector

A line-by-line translation of Norvig's original Python code. An attempt to view F# as a "typed" Python.

 1: 
 2: 
 3: 
 4: 
 5: 
 6: 
 7: 
 8: 
 9: 
10: 
11: 
12: 
13: 
14: 
type Lista<'a>=
| Pusta
| Wezel of 'a*Lista<'a>;;
let agregacja agregat wartoscPoczatkowa drzew =
let rec agregacja wynik =
function
|Puste ->wynik
|Galezie(x,p,Puste) -> agregacja( agregat wynik x) p
|Galezie(x,Puste,p) -> agregacja( agregat wynik x) p
|Galezie(x,l,p)->
agregacja (agregat wynik x) l + agregacja (agregat wynik 0.0) p
agregacja wartoscPoczatkowa drzew
let drzewo=Galezie(2.0,Galezie(2.5,Puste,Puste),Galezie(3.5,Puste,Puste))
let x=agregacja suma 0.0 drzewo
union case Lista.Pusta: Lista<'a>
union case Lista.Wezel: 'a * Lista<'a> -> Lista<'a>
type Lista<'a> =
  | Pusta
  | Wezel of 'a * Lista<'a>
val agregacja : agregat:(unit -> float -> unit) -> wartoscPoczatkowa:unit -> drzew:'a -> 'b
val agregat : (unit -> float -> unit)
val wartoscPoczatkowa : unit
val drzew : 'a
val agregacja : (unit -> 'a -> unit)
val wynik : unit
val Puste : 'a
val x : float
val p : 'a
val l : 'a
val drzewo : 'a
val x : 'a

More information

Link:http://fssnip.net/6j
Posted:3 years ago
Author:Nick Palladinos
Tags: spelling corrector , python