From 3ed1137118bf719eab1d3fc1d230441057cdf854 Mon Sep 17 00:00:00 2001
From: Aleksander Sadikov
Kako je lahko rezultat delitve seznama poljuben seznam oz. karkoli?
Če je tvoj robni pogoj v stilu divide([], _, _)
ali divide([X], [X|_], ...)
,
ga še enkrat premisli: kaj je rezultat delitve, kaj vračaš? Robni pogoj je vedno dokončno specificirana
-rešitev, tu načeloma ni neznank (_
ali neinicializiranih spremenljivk) v tem kar se vrača.
_
ali spremenljivk brez prirejenih vrednosti) v tem kar se vrača.
''',
'second_base_case_missing': '''\
Rekurzija se ne konča vedno uspešno. Sta morda dva različna primera kako se lahko izteče? Saj veš, -sodo in liho ;) Je morda potreben še kakšen robni pogoj?
+sodo in liho ;) Je morda potreben še kakšen robni pogoj? Poskusi naslednja klica, eden bo uspešen, drugi pa ne: +?- divide([a,b,c], L1, L2).
?- divide([a,b,c,d], L1, L2).
Ne vsiljuj rekurziji kaj naj vrne, prepusti se ji. To je tisti del, ko narediš predpostavko, če je ta izpolnjena, potem bo tvoje pravilo delovalo za večji primer.
Je tvoj rekurzivni klic oblike divide(T, [H1|...], [H2|...])
? S tem vsiljuješ rekurziji
-da mora H1
in H2
+da mora H1
in H2
dodaj izven rekurzivnega klica.