Személyes eszközök
Keresés

 

A InfoWiki wikiből

(Változatok közti eltérés)
3. sor: 3. sor:
<code lang="csharp">
<code lang="csharp">
-
Acker(Int,Int) -> Int
+
Acker(Int,Int)->Int
-
| 0, j = j + 1
+
Acker(0,j) = j + 1
-
| i, 0 = Acker(i-1, 1)
+
Acker(i,0) = Acker(i-1, 1)
-
| i,j = Acker(i-1, Acker (i,j-1))
+
Acker(i,j) = Acker(i-1, Acker (i,j-1))
</code>
</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 függvény törzse nem többször kerül definiálásra, mindössze mintaillesztés történik.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:
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">
<code lang="csharp">
-
static int Acker(int a, int b)
+
static int Acker(int i, int j)
{
{
-
   if (a==0) return b+1;
+
   if (i==0) return j+1;
-
   if (b=0) return Acker(a-1,1);
+
   if (j==0) return Acker(i-1,1);
-
   return Acker(a-1, Acker(a,b-1));
+
   return Acker(i-1, Acker(i,j-1));
}
}
</code>
</code>

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

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

A függvény törzse nem többször kerül definiálásra, mindössze mintaillesztés történik.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 i, int j)
{
  if (i==0) return j+1;
  if (j==0) return Acker(i-1,1);
  return Acker(i-1, Acker(i,j-1));
}
A lap eredeti címe: „http://wiki.ektf.hu/wiki/Titan:acker
Nézetek
nincs sb_18.191.223.123 cikk