summaryrefslogtreecommitdiff
path: root/prolog/problems/denotational_semantics/prog_listswap_2
diff options
context:
space:
mode:
Diffstat (limited to 'prolog/problems/denotational_semantics/prog_listswap_2')
-rw-r--r--prolog/problems/denotational_semantics/prog_listswap_2/common.py18
-rw-r--r--prolog/problems/denotational_semantics/prog_listswap_2/en.py12
2 files changed, 25 insertions, 5 deletions
diff --git a/prolog/problems/denotational_semantics/prog_listswap_2/common.py b/prolog/problems/denotational_semantics/prog_listswap_2/common.py
index e08337d..b3da01f 100644
--- a/prolog/problems/denotational_semantics/prog_listswap_2/common.py
+++ b/prolog/problems/denotational_semantics/prog_listswap_2/common.py
@@ -1,10 +1,10 @@
id = 175
-number = 79
-visible = False
+number = 10
+visible = True
facts = None
solution = '''\
-program --> [begin], instructs175, [end].
+prog_listswap --> [begin], instructs175, [end].
instructs175 --> instr175.
instructs175 --> instr175, instructs175.
@@ -13,3 +13,15 @@ instr175 --> [left].
instr175 --> [right].
instr175 --> [swap].
'''
+
+# nothing to do in this exercise
+initial = '''\
+prog_listswap --> [begin], instructs, [end].
+
+instructs --> instr.
+instructs --> instr, instructs.
+
+instr --> [left].
+instr --> [right].
+instr --> [swap].
+'''
diff --git a/prolog/problems/denotational_semantics/prog_listswap_2/en.py b/prolog/problems/denotational_semantics/prog_listswap_2/en.py
index ad0e9b1..89907bd 100644
--- a/prolog/problems/denotational_semantics/prog_listswap_2/en.py
+++ b/prolog/problems/denotational_semantics/prog_listswap_2/en.py
@@ -2,9 +2,17 @@ name = 'prog_listswap/2'
slug = 'list-manipulation language'
description = '''\
-<p>Write a DCG for manipulating list elements. The first symbol in every word is <code>[begin]</code>, followed by any sequence of "instruction" symbols from the set {<code>left</code>, <code>right</code>, <code>swap</code>}, and finally <code>[end]</code>. The starting symbol should be named <code>prog_listswap</code>.</p>
+<p>
+Write a DCG for manipulating list elements. The first symbol in every word is
+<code>[begin]</code>, followed by any sequence of "instruction" symbols from
+the set {<code>left</code>, <code>right</code>, <code>swap</code>}, and finally
+<code>[end]</code>. The starting symbol should be named
+<code>prog_listswap</code>.
+</p>
-<p>Example words: <code>[begin,right,swap,end]</code>, <code>[begin,right,left,end]</code>.</p>
+<p>
+Example words: <code>[begin,right,swap,end]</code>, <code>[begin,right,left,end]</code>.
+</p>
'''
hint = {}