summaryrefslogtreecommitdiff
path: root/prolog/problems/lists_advanced
diff options
context:
space:
mode:
Diffstat (limited to 'prolog/problems/lists_advanced')
-rw-r--r--prolog/problems/lists_advanced/evenlen_1_+_oddlen_1/sl.py29
1 files changed, 22 insertions, 7 deletions
diff --git a/prolog/problems/lists_advanced/evenlen_1_+_oddlen_1/sl.py b/prolog/problems/lists_advanced/evenlen_1_+_oddlen_1/sl.py
index 8600c55..72a9ef9 100644
--- a/prolog/problems/lists_advanced/evenlen_1_+_oddlen_1/sl.py
+++ b/prolog/problems/lists_advanced/evenlen_1_+_oddlen_1/sl.py
@@ -1,3 +1,5 @@
+# coding=utf-8
+
name = 'evenlen/1 + oddlen/1'
slug = 'Brez aritmetike preveri, če je seznam sode ali lihe dolžine'
@@ -13,6 +15,16 @@ description = '''\
true.
</pre>'''
+plan = ['''\
+<p>To nalogo se da reševati kot dve ločeni, a podobni, nalogi ali pa kot eno, prepletajočo se, nalogo.
+Druga verzija je verjetno bolj zanimiva.</p>
+''', '''\
+<p>Prepletanje tu pomeni, da ena naloga kliče drugo in obratno. Sodo. Liho. Sodo. Liho.</p>
+''', '''\
+<p>Če je rep (seznam brez ene glave) <em>sode</em> dolžine, potem je celoten seznam </em>lihe</em> dolžine.
+In obratno.</p>
+''']
+
hint = {
'eq_instead_of_equ': '''\
<p>Operator <code>==</code> je strožji od operatorja <code>=</code> v smislu, da je za slednjega dovolj,
@@ -27,24 +39,27 @@ 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? Kaj je najbolj enostaven primer, ki ga lahko trivialno rešiš?</p>
''',
'extra_base_case': '''\
-<p>extra_base_case</p>
+<p>Rešitve se ti podvajajo. Zadosti je le en robni pogoj; ne potrebuješ enega za <code>evenlen/1</code>
+in enega za <code>oddlen/1</code>.</p>
''',
'arbitrary_base_case': '''\
-<p>arbitrary_base_case</p>
+<p>Zgleda da sprejmeš kar poljuben rezultat (spremenljivko brez določene vrednosti). To gotovo ne bo v redu.</p>
+<p>Pazi <code>_</code> ni enako kot <code>[_]</code>. Prvo predstavlja poljubno spremenljivko, drugo seznam
+z <em>enim</em> poljubnim elementom.</p>
''',
'arithmetics_used': '''\
-<p>arithmetics_used</p>
+<p>Pri tej nalogi si ne pomagaj z aritmetiko oz. računanjem dolžine seznama. Rešiti se da brez tega in
+tudi veliko bolj poučno je.</p>
''',
'odd_and_even_mixed_up': '''\
-<p>odd_and_even_mixed_up</p>
+<p>Si morda pomešal sode in lihe dolžine? Nič je sodo (even), ena je liho (odd), dva je... ;)</p>
''',
'recursive_case': '''\
@@ -56,7 +71,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': '''\