summaryrefslogtreecommitdiff
path: root/fp1/week1/camil/2.1
diff options
context:
space:
mode:
Diffstat (limited to 'fp1/week1/camil/2.1')
-rw-r--r--fp1/week1/camil/2.1/NotatieFuncties.icl39
-rw-r--r--fp1/week1/camil/2.1/antwoorden.txt8
2 files changed, 47 insertions, 0 deletions
diff --git a/fp1/week1/camil/2.1/NotatieFuncties.icl b/fp1/week1/camil/2.1/NotatieFuncties.icl
new file mode 100644
index 0000000..bab2054
--- /dev/null
+++ b/fp1/week1/camil/2.1/NotatieFuncties.icl
@@ -0,0 +1,39 @@
+module NotatieFuncties
+
+import StdEnv
+
+f1 :: Int
+f1 = 1 + 5
+
+f2 :: Int
+f2 = (+) 1 5
+
+f3 :: Int Int -> Int
+f3 m n
+| m < n = m
+| otherwise = n
+
+f4 :: String Int -> String
+f4 s n
+| n <= 0 = ""
+| otherwise = s +++ f4 s (n-1)
+
+f5 :: Int Int -> Int
+f5 x 0 = x
+f5 x y = f5 y (x rem y)
+
+f6 :: (Int,Int) -> Int
+f6 x = fst x + snd x
+
+f7 :: (a,b) -> (b,a)
+f7 (a,b) = (b,a)
+
+f8 :: (a,a) -> (a,a)
+f8 x = f7 (f7 x)
+
+//Start = (f3 1 5, f3 4 3, f3 6 6)
+//Start = f4 "ab" 4
+//Start = (f5 13 5, f5 8 4, f5 20 20)
+//Start = f6 (2,3)
+//Start = f7 (5,7)
+Start = f8 (5,7)
diff --git a/fp1/week1/camil/2.1/antwoorden.txt b/fp1/week1/camil/2.1/antwoorden.txt
new file mode 100644
index 0000000..c0c98d6
--- /dev/null
+++ b/fp1/week1/camil/2.1/antwoorden.txt
@@ -0,0 +1,8 @@
+f1 5+1=6; constant
+f2 Reverse polix notation voor f1; zelfde functie dus
+f3 Geeft de kleinste van twee integers terug
+f4 Herhaalt s n keer
+f5 Geeft de ggd van x en y met Euclides' algoritme
+f6 Geeft de optelling x+y voor een tupel (x,y)
+f7 Flipt de twee elementen van een tupel
+f8 Flipt de twee elementen van een tupel twee keer (heeft geen effect)