diff options
Diffstat (limited to 'example-project')
-rw-r--r-- | example-project/build.gradle | 6 | ||||
-rw-r--r-- | example-project/src/main/frege/ch/fhnw/thga/HelloFrege.fr | 27 |
2 files changed, 30 insertions, 3 deletions
diff --git a/example-project/build.gradle b/example-project/build.gradle index ecc2f10..666b91e 100644 --- a/example-project/build.gradle +++ b/example-project/build.gradle @@ -1,10 +1,10 @@ plugins { - id 'ch.fhnw.thga.frege' version '1.8.0-alpha' + id 'ch.fhnw.thga.frege' version '1.9.0-alpha' } frege { version = '3.25.84' release = '3.25alpha' - mainModule = 'ch.fhnw.thga.Test' - replModule = 'ch.fhnw.thga.Test' + mainModule = 'ch.fhnw.thga.HelloFrege' + replModule = 'ch.fhnw.thga.HelloFrege' }
\ No newline at end of file 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 |