on master help sign in
Merge branch 'master' into pr/1036
commit5943865d444d5dc833fefad6ffd4c82523d5787c authorEvan Czaplicki <info@elm-lang.org> dateThu 27 Aug 2015, 21:08 (11 years ago) parent5248864a9658cc
1 file changed+70−47
bench/src/IfBench.elm+70−47
bench/src/IfBench.elm+70−47
@@ -1,81 +1,104 @@
11module IfBench where
22
3+
34tailRecursiveIfFn : Int -> Float
4−tailRecursiveIfFn i =
5− if
6− | i < 0 ->
5+tailRecursiveIfFn i =
6+ if i < 0 then
77 10.0
8− | i == 0 ->
8+
9+ else if i == 0 then
910 20.0
10− | i > 0 && i < 10 ->
11+
12+ else if i > 0 && i < 10 then
1113 30.0
12− | otherwise ->
13− tailRecursiveIfFn (i - (1 + (i % 5 ) ) )
14−
15−
14+
15+ else
16+ tailRecursiveIfFn (i - (1 + (i % 5)))
17+
18+
1619manyConditionFunction i =
17− if
18− | i <= 0 ->
20+ if i <= 0 then
1921 30.0 + (toFloat i)
20− | i > 100 && (i * i) % 20 == 7 ->
22+
23+ else if i > 100 && (i * i) % 20 == 7 then
2124 24.3 + (toFloat i)
22− | i > 100 && (i % 3 == 1) ->
25+
26+ else if i > 100 && (i % 3 == 1) then
2327 3.33 + (toFloat i)
24− | (i == 152) ->
28+
29+ else if i == 152 then
2530 29.0 + (toFloat i)
26− | (i + (i*i) > 200 && (i + (i*i) < 300)) ->
31+
32+ else if i + (i*i) > 200 && (i + (i*i) < 300) then
2733 32.9 + (toFloat i)
28− | i == 99 ->
34+
35+ else if i == 99 then
2936 93.0 + (toFloat i)
30− | (i*i % 17 == 13 ) ->
37+
38+ else if i*i % 17 == 13 then
3139 9.0 + (toFloat i)
32− | (i == 101) ->
40+
41+ else if i == 101 then
3342 39.0 + (toFloat i)
34− | (i == 102) ->
43+
44+ else if i == 102 then
3545 38.0 + (toFloat i)
36− | (i == 103) ->
46+
47+ else if i == 103 then
3748 49.0 + (toFloat i)
38− | (i == 104) ->
49+
50+ else if i == 104 then
3951 59.0 + (toFloat i)
40− | (i == 105) ->
52+
53+ else if i == 105 then
4154 69.0 + (toFloat i)
42− | (i == 106) ->
55+
56+ else if i == 106 then
4357 39.0 + (toFloat i)
44− | (i == 107) ->
58+
59+ else if i == 107 then
4560 38.0 + (toFloat i)
46− | (i == 108) ->
61+
62+ else if i == 108 then
4763 49.0 + (toFloat i)
48− | (i == 109) ->
64+
65+ else if i == 109 then
4966 59.0 + (toFloat i)
50− | (i == 110) ->
67+
68+ else if i == 110 then
5169 69.0 + (toFloat i)
52− | (i == 111) ->
70+
71+ else if i == 111 then
5372 39.0 + (toFloat i)
54− | (i == 115) ->
73+
74+ else if i == 115 then
5575 69.0 + (toFloat i)
56− | otherwise ->
76+
77+ else if otherwise then
5778 toFloat i
58−
59−
79+
80+
6081fewConditionFunction i =
61− if
62− | i <= 0 ->
82+ if i <= 0 then
6383 30.0 + (toFloat i)
64− | (i == 104) ->
84+
85+ else if i == 104 then
6586 59.0 + (toFloat i)
66− | (i == 105) ->
87+
88+ else if i == 105 then
6789 69.0 + (toFloat i)
68− | otherwise ->
90+
91+ else
6992 toFloat i
70−
71−
72−tailRecSum intList =
73− List.foldr (\i sumSoFar -> sumSoFar + tailRecursiveIfFn i ) 0.0 intList
74−
75−manyConditionalSum intList =
93+
94+
95+tailRecSum intList =
96+ List.foldr (\i sumSoFar -> sumSoFar + tailRecursiveIfFn i ) 0.0 intList
97+
98+
99+manyConditionalSum intList =
76100 List.foldr (\i sumSoFar -> sumSoFar + manyConditionFunction i ) 0.0 intList
77−
78−
79−fewConditionalSum intList =
101+
102+
103+fewConditionalSum intList =
80104 List.foldr (\i sumSoFar -> sumSoFar + fewConditionFunction i ) 0.0 intList
81−