mirror of
https://github.com/CatalaLang/catala.git
synced 2024-11-08 17:10:22 +03:00
62 lines
1.7 KiB
Plaintext
62 lines
1.7 KiB
Plaintext
## Article
|
|
|
|
```catala
|
|
declaration structure S:
|
|
data id content integer
|
|
data income content money
|
|
|
|
declaration scope A:
|
|
context output x content collection S
|
|
|
|
scope A:
|
|
definition x equals [
|
|
S { -- id: 0 -- income: $0 };
|
|
S { -- id: 1 -- income: $4 + $5 };
|
|
S { -- id: 2 -- income: $8 * 0.65 }
|
|
]
|
|
|
|
declaration scope B:
|
|
a scope A
|
|
output argmax content S
|
|
output argmin content S
|
|
|
|
scope B:
|
|
definition argmax equals
|
|
(m among a.x such that m.income * 2.0 is maximum
|
|
or if collection empty then S { -- id: -1 --income: $0 })
|
|
definition argmin equals
|
|
(m among a.x such that m.income + $5 is minimum
|
|
or if collection empty then S { -- id: -1 --income: $20 })
|
|
```
|
|
|
|
```catala-test-inline
|
|
$ catala Interpret -s A
|
|
[RESULT] Computation successful! Results:
|
|
[RESULT] x =
|
|
[ { S id = 0; income = $0.00; };
|
|
{ S id = 1; income = $9.00; };
|
|
{ S id = 2; income = $5.20; } ]
|
|
```
|
|
|
|
```catala-test-inline
|
|
$ catala Interpret -s B
|
|
[RESULT] Computation successful! Results:
|
|
[RESULT] argmax = { S id = 1; income = $9.00; }
|
|
[RESULT] argmin = { S id = 0; income = $0.00; }
|
|
```
|
|
```catala-test-inline
|
|
$ catala Interpret_Lcalc -s A --avoid_exceptions --optimize
|
|
[RESULT] Computation successful! Results:
|
|
[RESULT] x =
|
|
ESome
|
|
[ ESome { S id = ESome 0; income = ESome $0.00; };
|
|
ESome { S id = ESome 1; income = ESome $9.00; };
|
|
ESome { S id = ESome 2; income = ESome $5.20; } ]
|
|
```
|
|
```catala-test-inline
|
|
$ catala Interpret_Lcalc -s B --avoid_exceptions --optimize
|
|
[RESULT] Computation successful! Results:
|
|
[RESULT] argmax = ESome { S id = ESome 1; income = ESome $9.00; }
|
|
[RESULT] argmin = ESome { S id = ESome 0; income = ESome $0.00; }
|
|
```
|