aboutsummaryrefslogtreecommitdiff
path: root/example-project
diff options
context:
space:
mode:
Diffstat (limited to 'example-project')
-rw-r--r--example-project/build.gradle6
-rw-r--r--example-project/src/main/frege/ch/fhnw/thga/HelloFrege.fr27
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