\section{Cedrics Codierwettstreit in Heft 1/2009}

Hallo VD--Redaktion, ich habe mich sehr über den Aufruf zum Wettstreit 
in der letzten VD gefreut. Samuel Falvo spricht im Interview auch über Haskell.
Grund genug für mich, dass ich mir eine Lösung in Haskell überlegt habe, die
ich Euch hiermit vorstellen möchte:

\lstset{language=haskell,
basicstyle=\ttfamily\footnotesize,
keywords={module,where,import},
showstringspaces=false}

\begin{lstlisting}
module Main where

import Data.List
removeDuplicates = Data.List.nub

unique l =  removeDuplicates l == l

gaps [x] = []
gaps (x0:(x1:xs)) = (x1-x0) : gaps (x1:xs)

largest = 10000
numbers = filter (unique . show) [1..largest] 
 
main = do
  putStr "Here are the numbers: ";
  print numbers;
  putStr "The largets gap is "; 
  print (maximum (gaps numbers));
  putStr "Total number of numbers displayed is "; 
  print (length numbers)
\end{lstlisting}

Urteilt selbst über die Kürze und Klarheit dieser Lösung :-)

Es grüßt Euch, Johannes Brooks \hspace*{\fill}(uho)



