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