## Lambda Calculus Primes - Sieve of Eratosthenese.

 home  Bib  Algorithms  Bioinfo  FP  Logic  MML  Prog.Lang and the  mmlist

FP
Lambda
Introduction
Examples

Note the use of "infinite" lists (e.g. from 2) in the functional-programming Sieve of Eratosthenese algorithm.

 ```let rec first = lambda n. lambda l. if n=0 then nil else (hd l)::(first (n-1) tl l), from = lambda n. n::(from (n+1)) in let rec filter = lambda f. lambda l. { remove multiples of f from l } if null l then nil else if hd l/f*f = hd l then filter f tl l else hd l :: filter f tl l, sieve = lambda l. if null l then nil else let p = hd l { prime } in p :: sieve (filter p tl l) in first 10 ( sieve (from 2) ) {\fB Sieve of Eratosthenes. \fP} ``` let rec first = lambda n. lambda l. if n=0 then nil else (hd l)::(first (n-1) tl l), from = lambda n. n::(from (n+1)) in let rec filter = lambda f. lambda l. { remove multiples of f from l } if null l then nil else if hd l/f*f = hd l then filter f tl l else hd l :: filter f tl l, sieve = lambda l. if null l then nil else let p = hd l { prime } in p :: sieve (filter p tl l) in first 10 ( sieve (from 2) ) {\fB Sieve of Eratosthenes. \fP}
window on the wide world:
 The Darwin Awards V: Next Evolution

 Linux  Ubuntu free op. sys. OpenOffice free office suite, ver 3.4+ The GIMP ~ free photoshop Firefox web browser FlashBlock like it says!

λ ...
 :: list cons nil the [ ] list null predicate hd head (1st) tl tail (rest)

 © L. Allison   http://www.allisons.org/ll/   (or as otherwise indicated), Faculty of Information Technology (Clayton), Monash University, Australia 3800 (6/'05 was School of Computer Science and Software Engineering, Fac. Info. Tech., Monash University, was Department of Computer Science, Fac. Comp. & Info. Tech., '89 was Department of Computer Science, Fac. Sci., '68-'71 was Department of Information Science, Fac. Sci.) Created with "vi (Linux + Solaris)",  charset=iso-8859-1,  fetched Wednesday, 27-May-2020 21:18:51 AEST.