@@ -1,81 +1,104 @@
1module IfBench where
1module IfBench where
3tailRecursiveIfFn : Int -> Float
4tailRecursiveIfFn : Int -> Float
4−tailRecursiveIfFn i =
5+tailRecursiveIfFn i =
10− | i > 0 && i < 10 ->
12+ else if i > 0 && i < 10 then
13− tailRecursiveIfFn (i - (1 + (i % 5 ) ) )
16+ tailRecursiveIfFn (i - (1 + (i % 5)))
16manyConditionFunction i =
19manyConditionFunction i =
19 30.0 + (toFloat i)
21 30.0 + (toFloat i)
20− | i > 100 && (i * i) % 20 == 7 ->
23+ else if i > 100 && (i * i) % 20 == 7 then
21 24.3 + (toFloat i)
24 24.3 + (toFloat i)
22− | i > 100 && (i % 3 == 1) ->
26+ else if i > 100 && (i % 3 == 1) then
23 3.33 + (toFloat i)
27 3.33 + (toFloat i)
24− | (i == 152) ->
29+ else if i == 152 then
25 29.0 + (toFloat i)
30 29.0 + (toFloat i)
26− | (i + (i*i) > 200 && (i + (i*i) < 300)) ->
32+ else if i + (i*i) > 200 && (i + (i*i) < 300) then
27 32.9 + (toFloat i)
33 32.9 + (toFloat i)
29 93.0 + (toFloat i)
36 93.0 + (toFloat i)
30− | (i*i % 17 == 13 ) ->
38+ else if i*i % 17 == 13 then
31 9.0 + (toFloat i)
39 9.0 + (toFloat i)
32− | (i == 101) ->
41+ else if i == 101 then
33 39.0 + (toFloat i)
42 39.0 + (toFloat i)
34− | (i == 102) ->
44+ else if i == 102 then
35 38.0 + (toFloat i)
45 38.0 + (toFloat i)
36− | (i == 103) ->
47+ else if i == 103 then
37 49.0 + (toFloat i)
48 49.0 + (toFloat i)
38− | (i == 104) ->
50+ else if i == 104 then
39 59.0 + (toFloat i)
51 59.0 + (toFloat i)
40− | (i == 105) ->
53+ else if i == 105 then
41 69.0 + (toFloat i)
54 69.0 + (toFloat i)
42− | (i == 106) ->
56+ else if i == 106 then
43 39.0 + (toFloat i)
57 39.0 + (toFloat i)
44− | (i == 107) ->
59+ else if i == 107 then
45 38.0 + (toFloat i)
60 38.0 + (toFloat i)
46− | (i == 108) ->
62+ else if i == 108 then
47 49.0 + (toFloat i)
63 49.0 + (toFloat i)
48− | (i == 109) ->
65+ else if i == 109 then
49 59.0 + (toFloat i)
66 59.0 + (toFloat i)
50− | (i == 110) ->
68+ else if i == 110 then
51 69.0 + (toFloat i)
69 69.0 + (toFloat i)
52− | (i == 111) ->
71+ else if i == 111 then
53 39.0 + (toFloat i)
72 39.0 + (toFloat i)
54− | (i == 115) ->
74+ else if i == 115 then
55 69.0 + (toFloat i)
75 69.0 + (toFloat i)
56− | otherwise ->
77+ else if otherwise then
60fewConditionFunction i =
81fewConditionFunction i =
63 30.0 + (toFloat i)
83 30.0 + (toFloat i)
64− | (i == 104) ->
85+ else if i == 104 then
65 59.0 + (toFloat i)
86 59.0 + (toFloat i)
66− | (i == 105) ->
88+ else if i == 105 then
67 69.0 + (toFloat i)
89 69.0 + (toFloat i)
72−tailRecSum intList =
95+tailRecSum intList =
73− List.foldr (\i sumSoFar -> sumSoFar + tailRecursiveIfFn i ) 0.0 intList
96+ List.foldr (\i sumSoFar -> sumSoFar + tailRecursiveIfFn i ) 0.0 intList
75−manyConditionalSum intList =
99+manyConditionalSum intList =
76 List.foldr (\i sumSoFar -> sumSoFar + manyConditionFunction i ) 0.0 intList
100 List.foldr (\i sumSoFar -> sumSoFar + manyConditionFunction i ) 0.0 intList
79−fewConditionalSum intList =
103+fewConditionalSum intList =
80 List.foldr (\i sumSoFar -> sumSoFar + fewConditionFunction i ) 0.0 intList
104 List.foldr (\i sumSoFar -> sumSoFar + fewConditionFunction i ) 0.0 intList