summaryrefslogtreecommitdiff
path: root/prolog/problems/denotational_semantics/prog_listswap_3/common.py
diff options
context:
space:
mode:
authorAleš Smodiš <aless@guru.si>2015-08-18 16:06:19 +0200
committerAleš Smodiš <aless@guru.si>2015-08-18 16:06:19 +0200
commit95e2fe57f6e4639f6ae9f1fef368829d5090dbf6 (patch)
tree462ba05eb0c4732ca1c97739548801258bf47b40 /prolog/problems/denotational_semantics/prog_listswap_3/common.py
Exported all problems from the SQLite database into the new directory structure.
Diffstat (limited to 'prolog/problems/denotational_semantics/prog_listswap_3/common.py')
-rw-r--r--prolog/problems/denotational_semantics/prog_listswap_3/common.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/prolog/problems/denotational_semantics/prog_listswap_3/common.py b/prolog/problems/denotational_semantics/prog_listswap_3/common.py
new file mode 100644
index 0000000..110890d
--- /dev/null
+++ b/prolog/problems/denotational_semantics/prog_listswap_3/common.py
@@ -0,0 +1,24 @@
+id = 174
+group = 'denotational_semantics'
+number = 80
+visible = True
+facts = 'denotational_semantics_aux__predicates'
+
+solution = '''\
+prog_listswap(In-->Out) -->
+ [begin], instructs174((In,1)-->(Out,_)), [end].
+
+instructs174((R0,C0)-->(R,C)) -->
+ instr174((R0,C0)-->(R,C)).
+instructs174((R0,C0)-->(R,C)) -->
+ instr174((R0,C0)-->(R1,C1)),
+ instructs174((R1,C1)-->(R,C)).
+
+instr174((R0,C0)-->(R0,C)) -->
+ [left], { C0 > 1, C is C0 - 1 ; C0 =< 1, C is C0 }.
+instr174((R0,C0)-->(R0,C)) -->
+ [right], { length(R0, LenR0),
+ ( C0 < LenR0, C is C0 + 1 ; C0 >= LenR0, C is C0 ) }.
+
+instr174((R0,C0)-->(R,C0)) -->
+ [swap], {swap(R0,C0,R)}.'''