<?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=Magasabbrend%C5%B1_elj%C3%A1r%C3%A1sok</id>
	<title>Magasabbrendű eljárások - Laptörténet</title>
	<link rel="self" type="application/atom+xml" href="https://vik.wiki/index.php?action=history&amp;feed=atom&amp;title=Magasabbrend%C5%B1_elj%C3%A1r%C3%A1sok"/>
	<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=Magasabbrend%C5%B1_elj%C3%A1r%C3%A1sok&amp;action=history"/>
	<updated>2026-05-18T03:42:41Z</updated>
	<subtitle>Az oldal laptörténete a wikiben</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://vik.wiki/index.php?title=Magasabbrend%C5%B1_elj%C3%A1r%C3%A1sok&amp;diff=137912&amp;oldid=prev</id>
		<title>Unknown user: Új oldal, tartalma: „{{GlobalTemplate|Infoalap|PrologElm27}}  * fejezetek: 4.10 * fóliák: 238-243  Olyan eljárások, melyek argumentuma egy másik eljárás.    ==Megoldásgyűjtő eljá…”</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=Magasabbrend%C5%B1_elj%C3%A1r%C3%A1sok&amp;diff=137912&amp;oldid=prev"/>
		<updated>2012-10-21T20:09:36Z</updated>

		<summary type="html">&lt;p&gt;Új oldal, tartalma: „{{GlobalTemplate|Infoalap|PrologElm27}}  * fejezetek: 4.10 * fóliák: 238-243  Olyan eljárások, melyek argumentuma egy másik eljárás.    ==Megoldásgyűjtő eljá…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Új lap&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{GlobalTemplate|Infoalap|PrologElm27}}&lt;br /&gt;
&lt;br /&gt;
* fejezetek: 4.10&lt;br /&gt;
* fóliák: 238-243&lt;br /&gt;
&lt;br /&gt;
Olyan eljárások, melyek argumentuma egy másik eljárás. &lt;br /&gt;
 &lt;br /&gt;
==Megoldásgyűjtő eljárások==&lt;br /&gt;
 &lt;br /&gt;
Lista páros elemeinek felsorolása: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
findall(X, (member(X,L), X mod 2 =:= 0), Pk).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==Meta-eljárások megoldásgyűtő eszközökkel==&lt;br /&gt;
 &lt;br /&gt;
Tetszőleges Prolog predikátum szerint is szűrhetjük a listát. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
filter(L, X, Pred, FL) :- &lt;br /&gt;
	 findall(X, (member(X, L), call(Pred)), FL). &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
A funkcionális nyelvekből jól ismert map függvény Prolog verziója: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
map(L, X, Pred, Y, ML) :- &lt;br /&gt;
	 findall(Y, (member(X, L), Pred), ML). &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Részlegesen paraméterezett eljárások==&lt;br /&gt;
 &lt;br /&gt;
Egy olyan map függvényt írunk, amelynek olyan kifejezéseket adunk át, amelyek önmagukban nem hívhatók meg, hanem csak úgy, hogy ezeket a kifejezéseket ellátjuk két további paraméterrel. Ezeket a kifejezéseket tehát joggal nevezhetjük részlegesen paraméterezett eljáráshívásoknak. &lt;br /&gt;
 &lt;br /&gt;
Konvenció: a magasabbrendű műveletekben érdekelt argumentumok mindig a predikátum utolsó argumentum-pozícióin vannak. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
% Pred utolsó két argumentumként az A és B kifejezésekkel  &lt;br /&gt;
% kiegészítve igaz. &lt;br /&gt;
call2(Pred, A, B) :- &lt;br /&gt;
	 Pred =.. FArgs,&lt;br /&gt;
	 append(FArgs, [A,B], FArgs2), &lt;br /&gt;
	 Pred2 =.. FArgs2,&lt;br /&gt;
	 call(Pred2). &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Részleges paraméterezést használó magasabbrendű eljárások==&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
% map(Xs, Pred, Ys): Az Xs lista elemeire a Pred transzformációt  &lt;br /&gt;
% alkalmazva kapjuk az Ys listát. &lt;br /&gt;
map([X|Xs], Pred, [Y|Ys]) :- &lt;br /&gt;
	 call2(Pred, X, Y), &lt;br /&gt;
	 map(Xs, Pred, Ys). &lt;br /&gt;
map([], _, []). &lt;br /&gt;
 &lt;br /&gt;
negyzet(X, Y) :- Y is X*X. &lt;br /&gt;
 &lt;br /&gt;
| ?- map([1,2,3,4], negyzet, L). &lt;br /&gt;
L = [1,4,9,16] ? ; &lt;br /&gt;
no &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Infoalap]]&lt;/div&gt;</summary>
		<author><name>Unknown user</name></author>
	</entry>
</feed>