diff options
Diffstat (limited to 'prolog/problems/lists_advanced/palindrome_1/sl.py')
-rw-r--r-- | prolog/problems/lists_advanced/palindrome_1/sl.py | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/prolog/problems/lists_advanced/palindrome_1/sl.py b/prolog/problems/lists_advanced/palindrome_1/sl.py index ce6dedc..39b054a 100644 --- a/prolog/problems/lists_advanced/palindrome_1/sl.py +++ b/prolog/problems/lists_advanced/palindrome_1/sl.py @@ -35,8 +35,7 @@ implicitno že kar v argumentih predikata (glavi stavka).</p> ''', 'base_case': '''\ -<p>Si pomislil na robni pogoj? Kaj je najbolj enostaven primer, ko je element v seznamu? -Do katerega elementa najlažje prideš?</p> +<p>Si pomislil na robni pogoj? Kateri seznam predstavlja najkrajši možen palindrom?</p> ''', 'predicate_always_false': '''\ @@ -44,7 +43,7 @@ Do katerega elementa najlažje prideš?</p> <p>Če je ime pravilno, se morda splača preveriti tudi, če se nisi zatipkal kje drugje, je morda kakšna pika namesto vejice ali obratno, morda kakšna spremenljivka z malo začetnico?</p> <p>Možno je seveda tudi, da so tvoji pogoji prestrogi ali celo nemogoči (kot bi bila npr. zahteva, -da je <code>X</code> hkrati starš in sestra od <code>Y</code> ali kaj podobno zlobnega).</p> +da je <code>N</code> enako kot <code>N + 1</code> ali kaj podobno logično zlobnega).</p> ''', 'timeout': '''\ @@ -53,22 +52,33 @@ da je <code>X</code> hkrati starš in sestra od <code>Y</code> ali kaj podobno z ''', '[X,X]_instead_of_[]_base_case': '''\ -<p>[X,X]_instead_of_[]_base_case')</p> +<p>Vsekakor je [X,X] povsem dober robni pogoj, a ne pokrije posebnega primera, ko je vhod kar prazen seznam. To je +seveda stvar definicije, a da bomo imeli vsi enake rešitve, prosim, popravi.</p> ''', 'one_base_case_missing': '''\ -<p>one_base_case_missing</p> +<p>Jemlješ po <em>dva</em> elementa stran ob vsakem prehodu rekurzije? Kako se to zaključi? Liho, sodo? ;)</p> +<p>Poskusi naslednja dva primera, eden bo lepo deloval, drugi ne. V čem je razlika?</p> +<p><code>?- palindrome([a,b,b,a]).</code></p> +<p><code>?- palindrome([l,e,v,e,l]).</code></p> ''', 'arbitrary_base_case': '''\ -<p>arbitrary_base_case</p> +<p>Pazi <code>_</code> ni enako kot <code>[_]</code>. Prvo predstavlja poljubno spremenljivko, drugo seznam +z <em>enim</em> poljubnim elementom.</p> ''', 'last_used': '''\ -<p>last_used</p> +<p>Predikat <code>last/2</code> je tukaj štorast, ker pusti zadnji element v seznamu.</p> ''', - 'final_hint': '''\ -<p>final_hint</p> + 'final_hint_1': '''\ +<p>Zanimivost: veš, da bi to nalogo lahko rešil tudi s samo enim klicem? Kaj se zgodi, če palindrom... khm, +obrneš? ;)</p> +''', + + 'final_hint_2': '''\ +<p>Rešitev lahko še dodatno skrajšaš. Kako se lahko znebiš operatorja <code>=</code> (<code>==</code>) +oziroma ga narediš implicitnega?</p> ''', } |