From c8d114f863d0d22e802c2296f549565965a43934 Mon Sep 17 00:00:00 2001 From: Aleksander Sadikov Date: Mon, 21 Mar 2016 04:43:14 +0100 Subject: Hints and plans for shiftleft/2 added. --- prolog/problems/lists_advanced/shiftleft_2/sl.py | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) (limited to 'prolog') diff --git a/prolog/problems/lists_advanced/shiftleft_2/sl.py b/prolog/problems/lists_advanced/shiftleft_2/sl.py index ec55c4e..bbe6d79 100644 --- a/prolog/problems/lists_advanced/shiftleft_2/sl.py +++ b/prolog/problems/lists_advanced/shiftleft_2/sl.py @@ -1,3 +1,5 @@ +# coding=utf-8 + name = 'shiftleft/2' slug = 'Premakni elemente seznama za eno mesto v levo' @@ -8,6 +10,18 @@ description = '''\ X = [2,3,4,5,1]. ''' +plan = ['''\ +

V seznamu vzamem prvi element (recimu mu H) in ga dodam preostanku (recimu mu T) +na konec. Preprosto! Saj se še spomniš od prejšnjič kako vzameš zadnji element seznamu? Dodajanje je ista +operacija, samo v drugo smer ;)

+''', '''\ +

Seznam dolžine ena je videti kot vzorec [X]. To bi znalo priti prav, kakor tudi predikat +conc/3.

+''', '''\ +

Če je podani seznam L sestavljen iz glave H in repa T in če H +dodamo na konec T, potem je rezultat seznam L premaknjen v levo.

+'''] + hint = { 'eq_instead_of_equ': '''\

Operator == je strožji od operatorja = v smislu, da je za slednjega dovolj, @@ -26,7 +40,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).

+da je N enako kot N + 1 ali kaj podobno logično zlobnega).

''', 'timeout': '''\ @@ -35,14 +49,16 @@ da je X hkrati starš in sestra od Y ali kaj podobno z ''', 'conc_arg_not_list': '''\ -

conc_arg_not_list

+

Vsi trije argumenti predikata conc/3 morajo biti seznami. Si prepričan, +da si ga tako uporabil?

''', 'arbitrary_result': '''\ -

arbitrary_result

+

Si pravilno povezal vse spremenljivke? Zgleda namreč, da vračaš kar poljuben rezultat (spremenljivko brez +določene vrednosti). Opozorila "singleton variables" večinoma ni pametno ignorirati.

''', 'tail_must_be_list': '''\ -

tail_must_be_list

+

Rep seznama mora vedno biti seznam in ne element!

''', } -- cgit v1.2.1