on master help sign in
Merge branch 'master' into pr/1036
5943865Evan Czaplicki
bench/src/IfBench.elm+70−47
@@ -1,81 +1,104 @@
1module IfBench where
1module IfBench where
2
2
3+
3tailRecursiveIfFn : Int -> Float
4tailRecursiveIfFn : Int -> Float
4−tailRecursiveIfFn i =
5+tailRecursiveIfFn i =
5− if
6+ if i < 0 then
6− | i < 0 ->
7 10.0
7 10.0
8− | i == 0 ->
8+
9+ else if i == 0 then
9 20.0
10 20.0
11+
10− | i > 0 && i < 10 ->
12+ else if i > 0 && i < 10 then
11 30.0
13 30.0
12− | otherwise ->
14+
15+ else
13− tailRecursiveIfFn (i - (1 + (i % 5 ) ) )
16+ tailRecursiveIfFn (i - (1 + (i % 5)))
14−
17+
15−
18+
16manyConditionFunction i =
19manyConditionFunction i =
17− if
20+ if i <= 0 then
18− | i <= 0 ->
19 30.0 + (toFloat i)
21 30.0 + (toFloat i)
22+
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)
25+
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)
28+
24− | (i == 152) ->
29+ else if i == 152 then
25 29.0 + (toFloat i)
30 29.0 + (toFloat i)
31+
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)
28− | i == 99 ->
34+
35+ else if i == 99 then
29 93.0 + (toFloat i)
36 93.0 + (toFloat i)
37+
30− | (i*i % 17 == 13 ) ->
38+ else if i*i % 17 == 13 then
31 9.0 + (toFloat i)
39 9.0 + (toFloat i)
40+
32− | (i == 101) ->
41+ else if i == 101 then
33 39.0 + (toFloat i)
42 39.0 + (toFloat i)
43+
34− | (i == 102) ->
44+ else if i == 102 then
35 38.0 + (toFloat i)
45 38.0 + (toFloat i)
46+
36− | (i == 103) ->
47+ else if i == 103 then
37 49.0 + (toFloat i)
48 49.0 + (toFloat i)
49+
38− | (i == 104) ->
50+ else if i == 104 then
39 59.0 + (toFloat i)
51 59.0 + (toFloat i)
52+
40− | (i == 105) ->
53+ else if i == 105 then
41 69.0 + (toFloat i)
54 69.0 + (toFloat i)
55+
42− | (i == 106) ->
56+ else if i == 106 then
43 39.0 + (toFloat i)
57 39.0 + (toFloat i)
58+
44− | (i == 107) ->
59+ else if i == 107 then
45 38.0 + (toFloat i)
60 38.0 + (toFloat i)
61+
46− | (i == 108) ->
62+ else if i == 108 then
47 49.0 + (toFloat i)
63 49.0 + (toFloat i)
64+
48− | (i == 109) ->
65+ else if i == 109 then
49 59.0 + (toFloat i)
66 59.0 + (toFloat i)
67+
50− | (i == 110) ->
68+ else if i == 110 then
51 69.0 + (toFloat i)
69 69.0 + (toFloat i)
70+
52− | (i == 111) ->
71+ else if i == 111 then
53 39.0 + (toFloat i)
72 39.0 + (toFloat i)
73+
54− | (i == 115) ->
74+ else if i == 115 then
55 69.0 + (toFloat i)
75 69.0 + (toFloat i)
76+
56− | otherwise ->
77+ else if otherwise then
57 toFloat i
78 toFloat i
58−
79+
59−
80+
60fewConditionFunction i =
81fewConditionFunction i =
61− if
82+ if i <= 0 then
62− | i <= 0 ->
63 30.0 + (toFloat i)
83 30.0 + (toFloat i)
84+
64− | (i == 104) ->
85+ else if i == 104 then
65 59.0 + (toFloat i)
86 59.0 + (toFloat i)
87+
66− | (i == 105) ->
88+ else if i == 105 then
67 69.0 + (toFloat i)
89 69.0 + (toFloat i)
68− | otherwise ->
90+
91+ else
69 toFloat i
92 toFloat i
70−
93+
71−
94+
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
74−
97+
98+
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
77−
101+
78−
102+
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
81−