Személyes eszközök
Keresés

 

A InfoWiki wikiből

(Változatok közti eltérés)
1. sor: 1. sor:
-
__NOTOC__
+
{{chap|TITÁN projekt|TITAN-M magas absztrakciós szint PÉLDÁK|ACKER függvény|titan:Nyitolap|titan:Nyitolap|titan:nfib}}
-
{{page_addr|TITÁN projekt - Acker fv}}
+
<code lang="csharp">
<code lang="csharp">

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

TITÁN projekt
TITAN-M magas absztrakciós szint PÉLDÁK
ACKER függvény
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 függvény típusdefiníciós sorát (első sor) onnan lehet felismerni, hogy a paraméterlistában típus-nevek fordulnak elő, és -> is szerepel az output típus megadásakor.

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_3.133.141.6 cikk