A InfoWiki wikiből
(Változatok közti eltérés)
|
|
(6 közbeeső változat nincs mutatva) |
1. sor: |
1. sor: |
- | __NOTOC__
| |
- | {{page_addr|TITÁN projekt - Acker fv}}
| |
| | | |
- | <code lang="csharp">
| |
- | Acker(Int,Int) -> Int
| |
- | | 0, j = j + 1
| |
- | | i, 0 = Acker(i-1, 1)
| |
- | | i,j = Acker(i-1, Acker (i,j-1))
| |
- | </code>
| |
- |
| |
- | A függvény kódjában a '''|''' vonal a mintaillesztést szimbolizálja. A fordítónak figyelnie kell, hogy minden minta-kombinációra van-e törzs kidolgozva.
| |
- |
| |
- | A minta (pattern) illesztésénél a lehetséges input paraméterek lehetséges értékeire adunk más-más viselkedésű függvény-törzseket. A fenti Acker-függvény C# változata az alábbi lehetne:
| |
- |
| |
- | <code lang="csharp">
| |
- | static int Acker(int a, int b)
| |
- | {
| |
- | if (a==0) return b+1;
| |
- | if (b=0) return Acker(a-1,1);
| |
- | return Acker(a-1, Acker(a,b-1));
| |
- | }
| |
- | </code>
| |
Aktuális változat