From 926c5acefe8f5211d0704de0db2c766251e48a14 Mon Sep 17 00:00:00 2001 From: Thibault Gagnaux Date: Tue, 8 Mar 2022 21:38:07 +0100 Subject: feat: adds new initFrege task --- .../src/main/frege/ch/fhnw/thga/HelloFrege.fr | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 example-project/src/main/frege/ch/fhnw/thga/HelloFrege.fr (limited to 'example-project/src') diff --git a/example-project/src/main/frege/ch/fhnw/thga/HelloFrege.fr b/example-project/src/main/frege/ch/fhnw/thga/HelloFrege.fr new file mode 100644 index 0000000..e601e15 --- /dev/null +++ b/example-project/src/main/frege/ch/fhnw/thga/HelloFrege.fr @@ -0,0 +1,27 @@ +module ch.fhnw.thga.HelloFrege where + +import Test.QuickCheck + +--- compute digit sum +digitSum :: Integer -> Integer +digitSum 0 = 0 +digitSum n = (n `rem` 10) + digitSum (n `div` 10) + +--- compute the reduced digit sum +reducedDigitSum :: Integer -> Integer +reducedDigitSum n = if n < 10 then n else reducedDigitSum $ digitSum n + +main = do + let answer = digitSum 6666666 + println $ + "The answer to life, the universe and everything is " + ++ show answer + ++ "." + +{-- + The property 'p_reduced_digit_sum_of_multiple_of_9_is_always_9' checks + the famous claim that every multiple of 9 number has also the reduced + digit sum of 9, e.g. 9, 27, 36, ... +-} +p_reduced_digit_sum_of_multiple_of_9_is_always_9 = + property $ \(n :: Integer) -> (n > 0) ==> (reducedDigitSum $ 9 * n) == 9 \ No newline at end of file -- cgit