From 815063053ef46e3baad68564585c306fc559eaad Mon Sep 17 00:00:00 2001
From: Aleksander Sadikov
Date: Mon, 29 Feb 2016 17:07:37 +0100
Subject: Some minor corrections in accompanying texts.
---
prolog/problems/family_relations/cousin_2/common.py | 5 +++++
prolog/problems/family_relations/cousin_2/sl.py | 10 +++++++++-
prolog/problems/family_relations/intro_sl.html | 4 ++--
3 files changed, 16 insertions(+), 3 deletions(-)
(limited to 'prolog/problems/family_relations')
diff --git a/prolog/problems/family_relations/cousin_2/common.py b/prolog/problems/family_relations/cousin_2/common.py
index c6d07c7..86ef5cc 100644
--- a/prolog/problems/family_relations/cousin_2/common.py
+++ b/prolog/problems/family_relations/cousin_2/common.py
@@ -40,6 +40,7 @@ hint_type = {
'cousin_vs_sibling': Hint('cousin_vs_sibling'),
'cousin_to_oneself': Hint('cousin_to_oneself'),
'cousin_need_not_be_parent': Hint('cousin_need_not_be_parent'),
+ 'predicate_always_false': Hint('predicate_always_false'),
}
test_cases = [
@@ -84,6 +85,10 @@ def hint(code, aux_code):
return [{'id': 'gender_is_irrelevant_markup', 'start': m[0], 'end': m[1]} for m in marks] + \
[{'id': 'gender_is_irrelevant'}]
+ # target predicate seems to always be false
+ if not prolog.engine.ask_truth(engine_id, 'cousin(_, _)'):
+ return [{'id': 'predicate_always_false'}]
+
# precedence fail (AND block vs OR block)
# case in point: parent(PX, X), parent(PY, Y), brother(PX, PY) ; sister(PX, PY)
# or this case: parent(PX, X), parent(PY, Y), sister(PX, PY) ; brother(PX, PY)
diff --git a/prolog/problems/family_relations/cousin_2/sl.py b/prolog/problems/family_relations/cousin_2/sl.py
index 5b82305..c1380bf 100644
--- a/prolog/problems/family_relations/cousin_2/sl.py
+++ b/prolog/problems/family_relations/cousin_2/sl.py
@@ -40,7 +40,7 @@ hint = {
'precedence_fail': '''\
Si morda narobe upošteval prioriteto operatorjev IN ter ALI?
-Operator IN veže močneje od ALI, če želiš spremeniti prioriteto,
+
Operator IN veže močneje od ALI; če želiš spremeniti prioriteto,
lahko uporabiš oklepaje.
''',
@@ -58,6 +58,14 @@ Imata morda X
in Y
istega starša?
'cousin_need_not_be_parent': '''\
Bratranec/sestrična pravzaprav ne rabi imeti otrok...
+''',
+
+ 'predicate_always_false': '''\
+Vse kaže, da tvoj predikat vedno vrne "false". Si mu dal pravilno ime, si se morda pri imenu zatipkal?
+Č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
).
''',
# 'interesting_tidbit': '''\
diff --git a/prolog/problems/family_relations/intro_sl.html b/prolog/problems/family_relations/intro_sl.html
index 0e1147b..54d2e1e 100644
--- a/prolog/problems/family_relations/intro_sl.html
+++ b/prolog/problems/family_relations/intro_sl.html
@@ -143,7 +143,7 @@ so vsi argumenti lahko vhodi in izhodi hkrati. Nič ni strogo definirano. Temu
bomo pogovorno rekli, da prolog deluje v vse (več) smeri. Vprašali smo seveda,
kdo je starš od Williama.
-Privoščimo silahko še več.
+Privoščimo si lahko še več.
?- parent(X, Y).
@@ -346,7 +346,7 @@ ancestor(X, Y) :-
parent(X, Y)
;
parent(X, Z),
-ancestor(Z, Y).
+ ancestor(Z, Y).
Uporabili smo podpičje, logični „ali“. Preberimo pravilo: če je
--
cgit v1.2.1