-- Haskell-Einführung
-- Jost Berthold
--
-- Hauptprogramm mit Import von "Types.hs"
-- ShowPrime.hs
------------------------------------------
-- Aufgabe: 
--  nimm eine ganze Zahl n als Parameter von der Kommandozeile (falls vorhanden,
--  sonst frage den Benutzer nach einer Zahl n ) und gib die n-te Primzahl aus.

import System( getArgs ) -- reduzierter Import
import Types( primes ) -- wird vom GHC ab 5.00 automatisch gefunden (mit Option "--make")

-- /app/lang/functional/bin enthält eine aktuelle Version des Glasgow Haskell Compilers

main :: IO ()
main = do
        args <- getArgs
        if (length args == 0) then do 
				    n <- lesen
				    gibAus n
			      else 
			           let n = read (args!!0)::Int
				   in gibAus n

gibAus :: Int -> IO ()
gibAus n = putStrLn ("Primzahl Nr. " ++ show n ++ " ist "++ show prime)
	   where prime = primes!!(n-1) -- Liste beginnt bei Index 0

lesen :: IO Int
lesen = do
            putStr "Bitte ganze Zahl eingeben: "
	    x <- getLine
            return (read x :: Int)
