subword :: Eq a => [a] -> [a] -> Bool subword [] ys = True subword xs [] = False subword (x : xs) (y : ys) = if x == y then subword xs ys else subword (x : xs) ys primes :: [ Integer ] primes = minima teilbar [2 .. ] where teilbar x y = 0 == mod y x minima :: (a -> a -> Bool) -> [a] -> [a] minima comp (x : ys) = x : minima comp [ y | y <- ys, not (comp x y) ] mps, mqs :: [ String ] mps = minima subword [ show p | p <- primes ] mqs = minima subword [ show ( n * n ) | n <- [ 1 .. ] ]und lassen Sie sich die ersten Elemente der Listen mps, mqs anzeigen.
Main> mps ["2","3","5","7","11","19","41","61","89","409","449","499","881","991"{Interrupted!} (2352354 reductions, 3427365 cells, 1 garbage collection) Main> mqs ["1","4","9","25","36","576","676","7056","80656","665856","2027776","2802276"{Interrupted!} (2725230 reductions, 5489695 cells, 2 garbage collections)Nach dem Satz von Kruskal sind beide Listen endlich.
Welche Elemente besitzen sie?