From 44fb70a695d25382640bf4772c4fd582338fa684 Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Wed, 4 Nov 2015 18:46:55 +0100 Subject: Better solutions for quadrate & alleVariablen --- ws2015/FFP/blaetter/03/FFP_U03_Funktoren.hs | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'ws2015') diff --git a/ws2015/FFP/blaetter/03/FFP_U03_Funktoren.hs b/ws2015/FFP/blaetter/03/FFP_U03_Funktoren.hs index 935f9eb..eaa09c7 100644 --- a/ws2015/FFP/blaetter/03/FFP_U03_Funktoren.hs +++ b/ws2015/FFP/blaetter/03/FFP_U03_Funktoren.hs @@ -120,6 +120,9 @@ testb1 = testT2 == (fmap even testT1) quadrate :: [Integer] quadrate = map (2^) [0..] +quadrate' :: [Integer] -- More efficient (probably) +quadrate' = 1 : [2 * x | x <- quadrate'] + -- Zum Testen: q1 = take 5 quadrate -- > q1 @@ -143,6 +146,16 @@ alleVariablen = seed : alleVariablen' [seed] where now = [v : p | v <- vars, p <- prevs] +alleVariablen' :: [String] -- Preferred. +alleVariablen' = "" : [v : p | p <- alleVariablen', v <- vars] + where + vars = ['a', 'b', 'c', 'd'] + +alleVariablen'' :: [String] +alleVariablen'' = [v : p | p <- "" : alleVariablen'', v <- vars] + where + vars = ['a', 'b', 'c', 'd'] + -- Zum Testen: check l x = (map length . groupBy ((==) `on` length)) (take x l) -- cgit v1.2.3