plaudern.de

Forumsharing?
Forum suchen
Forum erstellen
Impressum/Kontakt
Datenschutz
AGB
Hilfe

25 User im System
Rekord: 144
(11.09.2023, 16:48 Uhr)

 
 
 Haskell :: Sprache
  Suche:
 Blatt 5 25.11.2002 (02:20 Uhr) amo
Hallo,

hier sind mal Lösungsversuche der Aufgaben 2 - 4. Mit den Permutationen der Aufgabe 5 und schlimmen Zahnschmerzen kämpfe ich leider noch.


--------------------------------

module Uebungsblatt_05 where

middle :: [a] -> a
middle xs = xs !! (( div ( length xs + 1 ) 2 ) - 1 )


allEqual :: [Integer] -> Bool
allEqual [] = True
allEqual (x:[]) = True
allEqual (x:y:xs) = x == y && allEqual ( y:xs )


merge :: Ord a => [a] -> [a] -> [a]
merge [] ys = ys
merge xs [] = xs
merge (x:xs) (y:ys)
                    | x < y = x : merge xs (y:ys)
                    | otherwise = y : merge (x:xs) ys

mergesort :: Ord a => [a] -> [a]
mergesort xs | length xs <= 1 = xs
             | otherwise = merge ( mergesort (take (length xs `div` 2) xs) ) ( mergesort (drop (length xs `div` 2) xs) )

--------------------------------------

Zu den Permutationen habe ich leider noch nicht die richtige Lösung gefunden.

Für middle sollte man es vielleicht noch hin bekommen, für eine leere Liste als Eingabe eine Fehlermeldung auszugeben, aber das scheitert bei mir bis jetzt an der Typisierung.

Für Ideen zu den Permutationen wäre ich dankbar!
 Aufgabe 1 27.11.2002 (22:54 Uhr) amo
0 User im Forum. Kostenloses Forumhosting von plaudern.de. Dieses Forum im eigenen Design entführen. Impressum
Papier sparen durch druckoptimierte Webseiten. Wie es geht erfahren Sie unter www.baummord.de.