Személyes eszközök
Keresés

 

A InfoWiki wikiből

(Változatok közti eltérés)
Aktuális változat (2009. június 24., 18:18) (lapforrás)
(uploaded)
 
(2 közbeeső változat nincs mutatva)
1. sor: 1. sor:
-
<cim cim1="TITAN-M Példák" cim3="ACKER függvény" prev="" next="titan:nfib" back="titan:titan-m"/>
 
-
 
-
<code lang="csharp">
 
-
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))
 
-
</code>
 
-
 
-
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:
 
-
 
-
<code lang="csharp">
 
-
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));
 
-
}
 
-
</code>
 

Aktuális változat

A lap eredeti címe: „http://wiki.ektf.hu/wiki/Titan:acker
Nézetek
nincs sb_18.224.214.215 cikk