Advertisement
Guest User

Untitled

a guest
Jan 17th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Aufgabe 1
  2. mnr = [ 7, 6, 5, 4, 3, 2, 1 ] {- Matrikelnummer -}
  3. name = "Max Mustermann" {- Name -}
  4. knz = "E 033 4711" {- Studienkennzahl -}
  5.  
  6. t1 = ("p1", (reverse . take 2 . words . \_ -> name)"!");
  7.  
  8. -- ("p1", ["Mustermann", "Max"]) :: ([Char], [[Char]])
  9.  
  10. t2 = ( \x y z a  -> x(z(z(z(a)))));
  11.  
  12. -- (a -> b) -> c -> (a -> a) -> a -> b
  13.  
  14. t3 = t2 (take 4) (\x-> x++x) reverse mnr
  15.  
  16. -- [1,2,3,4] :: [Int]
  17.  
  18. t4 = [[i+2]|i<-mnr,i+2<5] ++ [[i|i<-mnr,3<i,i>4]];
  19.  
  20. -- [[4],[3], [7,6,5]] :: [[Int]]
  21.  
  22. t5 = take 4 [[j|j<-[5..i]]|i<-mnr]
  23.  
  24. -- [[5,6,7],[5,6],[5]]
  25.  
  26. tls xs = xs : case xs of _:ys  -> tls ys; _-> []
  27. -- [a] -> [[a]]
  28. t6 = ((tls.take 2) mnr, take 5[(i,j)|(i:j:_)<-tls mnr, i<j]);
  29. -- ([[7,6],[6],[]], []) :: ([[Int]], [(Int, Int)])
  30.  
  31. p (a:b:l) xs ys = p l (a:b:xs) (b:ys);
  32. p _ xs ys = (sum ys, product xs);
  33. -- (Int, Int)
  34.  
  35. t7 = ( p [mnr!!5, mnr!!6] [] [], p mnr [] []);
  36.  
  37. -- ((1, 2), (12, 5040)) :: ((Int, Int), (Int, Int))
  38.  
  39. Aufgabe 2
  40.  
  41. Erstellen sie einen polymorphen algebraischen Datentyp BTree der einem Binärbaum entspricht. Jeder Knoten enthält ein polymorphes Element und zwei Unterbäume. Ein Knoten bzw. die Unterbäume können auch leer sein.
  42.  
  43. -- BEGIN <<LÖSUNG HIER>>
  44.  
  45. -- END <<LÖSUNG HIER>>
  46.  
  47. Aufgabe 3
  48. Geben Sie einen konkreten Wert für folgenden Typ in Haskell-Syntax inklusive Zeichnung an: ( BTree Integer, BTree String ). Die Bäume sollen die Werte 1,2 und "ab" enthalten.
  49.  
  50. -- BEGIN <<LÖSUNG HIER>>
  51.  
  52. -- END <<LÖSUNG HIER>>
  53.  
  54. Aufgabe 4
  55. Definieren Sie eine Funktion jdif die für einen BTree genau dann True liefert, wenn für jeden Knoten gilt, dass das Element des Knotens nicht in den Unterbäumen des Knotens vorkommt. (Typklasse!)
  56. -- BEGIN <<LÖSUNG HIER>>
  57.  
  58. -- END <<LÖSUNG HIER>>
  59.  
  60. Aufgabe 5
  61. Definieren Sie filtert, das eine einstellige boolsche Funktion und einen BTree erwartet und eine Liste jener Elemente in beliebiger Reihenfolge zurückliefert, bei denen die Funktion für das Element True ist. Geben Sie auch hier eine möglichst allgemeine Typdeklaration für filtert an!
  62. -- BEGIN <<LÖSUNG HIER>>
  63.  
  64. -- END <<LÖSUNG HIER>>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement