Tukaj je podobna naloga, kjer jih moras samo presteti.
-----
Napišite program, ki prešteje koliko spremenljivk je v danem izrazu. Na
primer klic countvars(2*a*(X+3*b-Y), N) vrne N = 2 (ker sta spremenljivki
dve, X in Y). Če se ista spremenljivka pojavi večkrat jo večkrat tudi
štejete.
countvars(X, 1) :- var(X).
countvars(X, 0) :- atomic(X).
countvars([Head|Tail], N) :-
countvars(Head, N1),
countvars(Tail, N2),
N is N1 + N2.
countvars(X, N) :-
X =.. [Functor | Arglist],
countvars(Arglist, N).
----
LP,
Bostjan
On Tue, 12 Jun 2007 15:19:40 +0200, Mateja Basa <[EMAIL PROTECTED]> wrote:
Kako se resujejo naloge tipa:
(1) Napišite program, ki vrne seznam neznank v podanem
izrazu. Na primer klic countvars(3*x*(x+2*y-(z+y)), L)
vrne L = [x,y,z]. Èe se ista neznanka pojavi veèkrat,
jo štejete samo enkrat.
in podobne? (kjer stejemo velike crke, oz.
spremenljivke)
Pa dejte kake resitve starih izpitov gor poslat .. da
malo preverimo med sabo.
Lp, Teja
____________________________________________________________________________________
Take the Internet to Go: Yahoo!Go puts the Internet in your pocket:
mail, news, photos & more.
http://mobile.yahoo.com/go?refer=1GNXIC