Bastelaufgabe

Laden Sie den foldenden Programmtext in hugs.
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?