name = 'Prolog' description = 'Introductory Prolog course.' hint = { 'no_hint': '''\
No hint available, sorry!
''', 'test_results': '''\Your code passed [%=passed%] / [%=total%] tests.
''', 'syntax_error': '''\Your code contains syntax errors! The Prolog compiler emitted the following messages:
[%=messages%]''', 'monkey_main': '''\
I was able to correct your program. Check out the editor for hints.
''', 'monkey_change': '''\Check the highlighted part.
''', 'monkey_insert': '''\Add another goal or clause.
''', 'monkey_remove': '''\Remove the highlighted part.
''', 'monkey_highlight': None, # used to highlight erroneous tokens 'monkey_buggy_literal': [ '''\Consider the highlighted values in the following program fragment:
Do all values have the correct type (number/list/structure/…)? Do the highlighted arguments appear in correct relations with other objects in the program?
''' ], 'monkey_buggy_variable': [ '''\The variable [%=variable%]
is used incorrectly. Pay particular attention to the following program fragments:
Are all goals referencing the variable [%=variable%]
correct?
Check whether you are using the right predicate or operator, and that the highlighted arguments make sense.
Do all occurrences of [%=variable%]
denote the same value?
In Prolog rules, each variable can only refer to a single value (e.g. person or number).
The highlighted variable [%=variable%]
appears only once in a rule:
This is usually an error. Should the value denoted by the variable [%=variable%]
appear anywhere else in the rule? Also check your program for typos.
The program is partially correct, but not complete yet. Perhaps a goal is missing in one of the clauses, or another rule is needed.
''', 'monkey_unknown': [ '''\Consider the highlighted program fragments:
This pattern does not occur in known solutions to this problem. This can indicate a mistake in the program, or that you are implementing a novel solution.
''' ], }