Price fraction: Difference between revisions

Content added Content deleted
(Add Swift)
Line 1,822: Line 1,822:
Langur uses decimal floating point.
Langur uses decimal floating point.


<lang langur>val .pricefrac = f(.f) {
<lang langur># using an implied parameter .f ...
given .f {
val .pricefrac = f given .f {
/* The default operator between test cases is "and".
case >= 0.00, < 0.06: 0.10
That is, writing "case" without a logical operator is the same as writing "case and".
case >= 0.06, < 0.11: 0.18
case >= 0.11, < 0.16: 0.26
To make a given case act as a switch in other languages, use "case or".
*/
case >= 0.16, < 0.21: 0.32

case >= 0.21, < 0.26: 0.38
case >= 0.26, < 0.31: 0.44
case >= 0.00, < 0.06: 0.10
case >= 0.31, < 0.36: 0.50
case >= 0.06, < 0.11: 0.18
case >= 0.36, < 0.41: 0.54
case >= 0.11, < 0.16: 0.26
case >= 0.41, < 0.46: 0.58
case >= 0.16, < 0.21: 0.32
case >= 0.46, < 0.51: 0.62
case >= 0.21, < 0.26: 0.38
case >= 0.51, < 0.56: 0.66
case >= 0.26, < 0.31: 0.44
case >= 0.56, < 0.61: 0.70
case >= 0.31, < 0.36: 0.50
case >= 0.61, < 0.66: 0.74
case >= 0.36, < 0.41: 0.54
case >= 0.66, < 0.71: 0.78
case >= 0.41, < 0.46: 0.58
case >= 0.71, < 0.76: 0.82
case >= 0.46, < 0.51: 0.62
case >= 0.76, < 0.81: 0.86
case >= 0.51, < 0.56: 0.66
case >= 0.81, < 0.86: 0.90
case >= 0.56, < 0.61: 0.70
case >= 0.86, < 0.91: 0.94
case >= 0.61, < 0.66: 0.74
case >= 0.91, < 0.96: 0.98
case >= 0.66, < 0.71: 0.78
case >= 0.96, < 1.01: 1.00
case >= 0.71, < 0.76: 0.82
default: throw "bad data"
case >= 0.76, < 0.81: 0.86
case >= 0.81, < 0.86: 0.90
}
case >= 0.86, < 0.91: 0.94
case >= 0.91, < 0.96: 0.98
case >= 0.96, < 1.01: 1.00
default: throw "bad data"
}
}