Személyes eszközök
Keresés

 

A InfoWiki wikiből

(Változatok közti eltérés)
(Új oldal, tartalma: „__NOTOC__ {{page_addr|TITÁN projekt - Acker fv}} <code lang="csharp"> result = Acker(3,7) Acker(Int,Int) -> Int | 0, j = j + 1 | i, 0 = Acker(i-1, 1) | i, j = Acker(...”)
3. sor: 3. sor:
<code lang="csharp">
<code lang="csharp">
-
result = Acker(3,7)
 
-
 
Acker(Int,Int) -> Int
Acker(Int,Int) -> Int
  | 0, j = j + 1
  | 0, j = j + 1
  | i, 0 = Acker(i-1, 1)
  | i, 0 = Acker(i-1, 1)
-
  | i, j = Acker(i-1, Acker (i,j-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>
</code>

A lap 2008. december 8., 21:22-kori változata

TITÁN projekt - Acker fv
Acker(Int,Int) -> Int
 | 0, j = j + 1
 | i, 0 = Acker(i-1, 1)
 | i,j  = Acker(i-1, Acker (i,j-1))

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:

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));
}
A lap eredeti címe: „http://wiki.ektf.hu/wiki/Titan:acker
Nézetek
nincs sb_3.149.254.35 cikk