| author | ali <ali@juiblex.co.uk> |
| Wed Oct 10 22:58:48 2012 +0100 (2012-10-10) | |
| changeset 1 | fe592b4168f3 |
| permissions | -rw-r--r-- |
| ali@0 | 1 |
<and> |
| ali@0 | 2 |
<expr> |
| ali@0 | 3 |
<define name="factorial" args="x"> |
| ali@0 | 4 |
<if> |
| ali@0 | 5 |
<lt><x/>2</lt> |
| ali@0 | 6 |
<x/> |
| ali@0 | 7 |
<multiply> |
| ali@0 | 8 |
<x/> |
| ali@0 | 9 |
<factorial><subtract><x/>1</subtract></factorial> |
| ali@0 | 10 |
</multiply> |
| ali@0 | 11 |
</if> |
| ali@0 | 12 |
</define> |
| ali@0 | 13 |
<if> |
| ali@0 | 14 |
<eq> |
| ali@0 | 15 |
<factorial>7</factorial> |
| ali@0 | 16 |
5040 |
| ali@0 | 17 |
</eq> |
| ali@0 | 18 |
<print newline="true">PASS</print> |
| ali@0 | 19 |
<expr> |
| ali@0 | 20 |
<print newline="true">FAIL</print> |
| ali@0 | 21 |
<false/> |
| ali@0 | 22 |
</expr> |
| ali@0 | 23 |
</if> |
| ali@0 | 24 |
</expr> |
| ali@0 | 25 |
<expr> |
| ali@0 | 26 |
<define name="factorial" args="x"> |
| ali@0 | 27 |
<define name="iterator" args="product counter max"> |
| ali@0 | 28 |
<if> |
| ali@0 | 29 |
<gt><counter/><max/></gt> |
| ali@0 | 30 |
<product/> |
| ali@0 | 31 |
<iterator> |
| ali@0 | 32 |
<multiply><counter/><product/></multiply> |
| ali@0 | 33 |
<add><counter/>1</add> |
| ali@0 | 34 |
<max/> |
| ali@0 | 35 |
</iterator> |
| ali@0 | 36 |
</if> |
| ali@0 | 37 |
</define> |
| ali@0 | 38 |
|
| ali@0 | 39 |
<iterator>1 1 <x/></iterator> |
| ali@0 | 40 |
</define> |
| ali@0 | 41 |
|
| ali@0 | 42 |
<if> |
| ali@0 | 43 |
<eq> |
| ali@0 | 44 |
<factorial>7</factorial> |
| ali@0 | 45 |
5040 |
| ali@0 | 46 |
</eq> |
| ali@0 | 47 |
<print newline="true">PASS</print> |
| ali@0 | 48 |
<expr> |
| ali@0 | 49 |
<print newline="true">FAIL</print> |
| ali@0 | 50 |
<false/> |
| ali@0 | 51 |
</expr> |
| ali@0 | 52 |
</if> |
| ali@0 | 53 |
</expr> |
| ali@0 | 54 |
</and> |