<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="hu">
	<id>https://vik.wiki/index.php?action=history&amp;feed=atom&amp;title=A_v%C3%A1g%C3%B3_%C3%A9s_az_indexel%C3%A9s_k%C3%B6lcs%C3%B6nhat%C3%A1sa</id>
	<title>A vágó és az indexelés kölcsönhatása - Laptörténet</title>
	<link rel="self" type="application/atom+xml" href="https://vik.wiki/index.php?action=history&amp;feed=atom&amp;title=A_v%C3%A1g%C3%B3_%C3%A9s_az_indexel%C3%A9s_k%C3%B6lcs%C3%B6nhat%C3%A1sa"/>
	<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=A_v%C3%A1g%C3%B3_%C3%A9s_az_indexel%C3%A9s_k%C3%B6lcs%C3%B6nhat%C3%A1sa&amp;action=history"/>
	<updated>2026-04-26T16:07:38Z</updated>
	<subtitle>Az oldal laptörténete a wikiben</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://vik.wiki/index.php?title=A_v%C3%A1g%C3%B3_%C3%A9s_az_indexel%C3%A9s_k%C3%B6lcs%C3%B6nhat%C3%A1sa&amp;diff=137892&amp;oldid=prev</id>
		<title>Unknown user: Új oldal, tartalma: „{{GlobalTemplate|Infoalap|PrologElm18}}  * fejezetek: 4.2.4, 4.2.5 * fóliák: II.41-43  A fordító figyelembe veszi a vágót, ha garantált, hogy egy adott fő funkt…”</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=A_v%C3%A1g%C3%B3_%C3%A9s_az_indexel%C3%A9s_k%C3%B6lcs%C3%B6nhat%C3%A1sa&amp;diff=137892&amp;oldid=prev"/>
		<updated>2012-10-21T20:09:15Z</updated>

		<summary type="html">&lt;p&gt;Új oldal, tartalma: „{{GlobalTemplate|Infoalap|PrologElm18}}  * fejezetek: 4.2.4, 4.2.5 * fóliák: II.41-43  A fordító figyelembe veszi a vágót, ha garantált, hogy egy adott fő funkt…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Új lap&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{GlobalTemplate|Infoalap|PrologElm18}}&lt;br /&gt;
&lt;br /&gt;
* fejezetek: 4.2.4, 4.2.5&lt;br /&gt;
* fóliák: II.41-43&lt;br /&gt;
&lt;br /&gt;
A fordító figyelembe veszi a vágót, ha garantált, hogy egy adott fő funktor esetén elérjük azt.&lt;br /&gt;
Ennek feltételei: &lt;br /&gt;
* Az első argumentum változó, konstans vagy csak változókat tartalmazó struktúra legyen.&lt;br /&gt;
* a további argumentumok változók legyenek&lt;br /&gt;
* a fejben az összes változóelőfordulás különböző legyen&lt;br /&gt;
* a törzs első hívása a vágó&lt;br /&gt;
&lt;br /&gt;
Ilyenkor a fordító az adott funktorhoz tartozó listából kihagyja a vágó utáni klózokat. Például:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
q(1, 2) :- !.&lt;br /&gt;
q(X, X).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vágó nélküli esetben (ha az első klóz helyett &amp;lt;pre&amp;gt;q(1, 2).&amp;lt;/pre&amp;gt;-t írunk)&lt;br /&gt;
* ha az első argumentum 1, a Prolog mindkét klózt megvizsgálja;&lt;br /&gt;
* ha az első argumentum nem 1, az indexelés segítségével a másodikra szűkít.&lt;br /&gt;
Vágóval&lt;br /&gt;
* ha az első argumentum 1, a fordító tudja, hogy csak az első klóz fog illeszkedni;&lt;br /&gt;
* különben csak a második.&lt;br /&gt;
&lt;br /&gt;
Másik példa: Fibonacci sorozat változatok&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;8&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt; &amp;#039;&amp;#039;&amp;#039;determinisztikus&amp;#039;&amp;#039;&amp;#039; &amp;lt;br&amp;gt; (&amp;amp;le;1-féleképpen sikerülhet) &amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt; &amp;#039;&amp;#039;&amp;#039;determinisztikus lefutású&amp;#039;&amp;#039;&amp;#039; &amp;lt;br&amp;gt; (nem hoz létre választási pontot, vagy levágja őket) &amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt; &amp;#039;&amp;#039;&amp;#039;választásmentes&amp;#039;&amp;#039;&amp;#039; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&lt;br /&gt;
	  &amp;lt;pre&amp;gt;&lt;br /&gt;
fib(1, 1).&lt;br /&gt;
fib(2, 2).&lt;br /&gt;
fib(N, F) :-&lt;br /&gt;
	N&amp;gt;2,&lt;br /&gt;
	N1 is N-1, N2 is N-2,&lt;br /&gt;
	fib(N1, F1), fib(N2, F2),&lt;br /&gt;
	F is F1+F2.&lt;br /&gt;
	  &amp;lt;/pre&amp;gt;&lt;br /&gt;
	 &amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&lt;br /&gt;
	  &amp;lt;pre&amp;gt;&lt;br /&gt;
fib(1, 1) :- !.&lt;br /&gt;
fib(2, 2) :- !.&lt;br /&gt;
fib(N, F) :-&lt;br /&gt;
	N&amp;gt;2,&lt;br /&gt;
	N1 is N-1, N2 is N-2,&lt;br /&gt;
	fib(N1, F1), fib(N2, F2),&lt;br /&gt;
	F is F1+F2.&lt;br /&gt;
	  &amp;lt;/pre&amp;gt;&lt;br /&gt;
	 &amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&lt;br /&gt;
	  &amp;lt;pre&amp;gt;&lt;br /&gt;
fib(1, F) :- !, F=1.&lt;br /&gt;
fib(2, F) := !, F=2.&lt;br /&gt;
fib(N, F) :-&lt;br /&gt;
	N&amp;gt;2,&lt;br /&gt;
	N1 is N-1, N2 is N-2,&lt;br /&gt;
	fib(N1, F1), fib(N2, F2),&lt;br /&gt;
	F is F1+F2.&lt;br /&gt;
	  &amp;lt;/pre&amp;gt;&lt;br /&gt;
	 &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Választásmentesség diszjunktív feltételes szerkezetek esetén===&lt;br /&gt;
&lt;br /&gt;
Feltételes szerkezet végrehajtásakor általában választási pont jön létre. &lt;br /&gt;
&lt;br /&gt;
A [[SICStus]] Prolog a (felt -&amp;gt; akkor ; egyébként) szerkezetet választásmentesen hajtja végre, ha a feltétel &lt;br /&gt;
konjunkció tagjai csak: &lt;br /&gt;
* aritmetikai összehasonlító eljáráshívások, és/vagy &lt;br /&gt;
* kifejezés-típust ellenőrző eljáráshívások, és/vagy &lt;br /&gt;
* általános összehasonlító eljáráshívások. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Infoalap]]&lt;/div&gt;</summary>
		<author><name>Unknown user</name></author>
	</entry>
</feed>