From bf1447e2f16267283db600758384e2d9d3ac2c5d Mon Sep 17 00:00:00 2001
From: Aleksander Sadikov Kot vedno, poskusi prevesti na manjši problem. Recimo, da že imaš največji element v repu seznama... Največji element v repu (seznamu brez glave Če je podani seznam Operator Si pomislil na robni pogoj? Kaj je najbolj enostaven primer, ko je element v seznamu?
-Do katerega elementa najlažje prideš? Si pomislil na robni pogoj? Kaj je najkrajši seznam, ki ima očiten največji element?H
) primerjaj z vrednostjo glave H
, tisti,
+ki je večji zmaga in ga vrneš!L
sestavljen iz glave H
in repa T
ter predpostavimo,
+da je največji element v T
enak MaxT
. Če dalje velja še, da je vrednost H
+večja od MaxT
, potem je H
največji element v L
. Ali pa velja, da je
+vrednost H
manjša od MaxT
, v tem primeru pa je MaxT
največji element v
+L
.==
je strožji od operatorja =
v smislu, da je za slednjega dovolj,
@@ -24,8 +39,7 @@ implicitno že kar v argumentih predikata (glavi stavka).
Č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?
Možno je seveda tudi, da so tvoji pogoji prestrogi ali celo nemogoči (kot bi bila npr. zahteva,
-da je X
hkrati starš in sestra od Y
ali kaj podobno zlobnega).
N
enako kot N + 1
ali kaj podobno logično zlobnega).
''',
'timeout': '''\
@@ -46,26 +60,33 @@ da je X
hkrati starš in sestra od Y
ali kaj podobno z
''',
'empty_list_base_case': '''\
-empty_list_base_case
+V praznem seznamu boš težko našel največji element. Kaj, če se tokrat ustaviš malo prej?
''', 'list_instead_of_elem_base_case': '''\ -list_instead_of_elem_base_case
+Vrni element in ne seznam!
''', 'duplicates_not_covered': '''\ -duplicates_not_covered
+Si pomislil, da so v seznamu lahko tudi duplikati?
''', 'args_not_instantiated': '''\ -args_not_instantiated
+Napaka, ki si jo dobil od prologa, pomeni, da ob uporabi aritmetike niso podane vse vrednosti spremenljivk.
+Si morda pozabil, da konjunkcija veže močneje od disjunkcije oz. da je vsak prologov stavek (veja, pravilo) +samostojen v smislu dosega spremenljivk? Morda je to problem. Pozorno poglej oba bloka kode (pred in za podpičjem), +oziroma obe pravili.
''', 'unprotected_branch': '''\ -unprotected_branch
+Zdi se mi, da si pozabil "zaščititi" eno izmed obeh vej. Obe veji (disjunkciji) potrebujeta pogoj, ne zanašaj se +na to, da če je prišel v drugo vejo, potem prva ne velja. Velja OR in ne XOR. Zato jih moraš ti narediti +ekskluzivne. Poskusi tole vprašanje in poglej vse možne rešitve, boš videl v čem je problem.
+?- max([6,9,3,8,1], Max).
one_branch_missing
+Si morda pozabil na eno izmed možnosti? Glava je lahko ali večja ali manjša od +največjega elementa v repu.
''', } -- cgit v1.2.1