mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-25 14:24:11 +00:00
Estimated hours taken: 0 Branches: main tests/debugger/interactive.exp: Conform to Zoltan's recent change in the handling of error messages involving lists.
135 lines
6.1 KiB
Plaintext
135 lines
6.1 KiB
Plaintext
1: 1 1 CALL pred interactive.main/2-0 (cc_multi) interactive.m:18
|
|
mdb> echo on
|
|
Command echo enabled.
|
|
mdb> query interactive list
|
|
?- append(X, Y, ['a', 'b', 'c']).
|
|
<stdin>:026: Inferred :- pred query((list.list(character)),
|
|
<stdin>:026: (list.list(character))).
|
|
<stdin>:026: Inferred :- mode query(out, out) is multi.
|
|
X = [], Y = ['a', 'b', 'c'], true ;
|
|
X = ['a'], Y = ['b', 'c'], true ;
|
|
X = ['a', 'b'], Y = ['c'], true ;
|
|
X = ['a', 'b', 'c'], Y = [], true ;
|
|
fail.
|
|
No (more) solutions.
|
|
?- qperm([1,2,3], List).
|
|
<stdin>:026: Inferred :- pred query((list.list(int))).
|
|
<stdin>:026: Inferred :- mode query(out) is nondet.
|
|
List = [1, 2, 3], true ;
|
|
List = [1, 3, 2], true ;
|
|
List = [2, 1, 3], true ;
|
|
List = [2, 3, 1], true ;
|
|
List = [3, 1, 2], true ;
|
|
List = [3, 2, 1], true ;
|
|
fail.
|
|
No (more) solutions.
|
|
?- qperm([1,2,3], List), List = [2 | _].
|
|
<stdin>:001: In clause for predicate `mdb_query.query'/2:
|
|
<stdin>:001: warning: variable `_2' occurs more than once in this scope.
|
|
<stdin>:012: In clause for predicate `mdb_query.run'/2:
|
|
<stdin>:012: warning: variable `_2' occurs more than once in this scope.
|
|
<stdin>:014: In clause for predicate `mdb_query.run'/2:
|
|
<stdin>:014: warning: variable `_2' occurs more than once in this scope.
|
|
<stdin>:015: In clause for predicate `mdb_query.run'/2:
|
|
<stdin>:015: warning: variable `_2' occurs more than once in this scope.
|
|
<stdin>:026: In clause for predicate `mdb_query.query'/2:
|
|
<stdin>:026: warning: variable `_2' occurs more than once in this scope.
|
|
<stdin>:026: Inferred :- pred query((list.list(int)), (list.list(int))).
|
|
<stdin>:026: Inferred :- mode query(out, out) is nondet.
|
|
List = [2, 1, 3], _2 = [1, 3], true ;
|
|
List = [2, 3, 1], _2 = [3, 1], true ;
|
|
fail.
|
|
No (more) solutions.
|
|
?- qperm([1,2,3], List), List = [4 | _].
|
|
<stdin>:001: In clause for predicate `mdb_query.query'/2:
|
|
<stdin>:001: warning: variable `_2' occurs more than once in this scope.
|
|
<stdin>:012: In clause for predicate `mdb_query.run'/2:
|
|
<stdin>:012: warning: variable `_2' occurs more than once in this scope.
|
|
<stdin>:014: In clause for predicate `mdb_query.run'/2:
|
|
<stdin>:014: warning: variable `_2' occurs more than once in this scope.
|
|
<stdin>:015: In clause for predicate `mdb_query.run'/2:
|
|
<stdin>:015: warning: variable `_2' occurs more than once in this scope.
|
|
<stdin>:026: In clause for predicate `mdb_query.query'/2:
|
|
<stdin>:026: warning: variable `_2' occurs more than once in this scope.
|
|
<stdin>:026: Inferred :- pred query((list.list(int)), (list.list(int))).
|
|
<stdin>:026: Inferred :- mode query(out, out) is nondet.
|
|
fail.
|
|
No (more) solutions.
|
|
?- qperm([1,2,"foo"], List).
|
|
<stdin>:001: In clause for predicate `query'/1:
|
|
<stdin>:001: in argument 1 of call to predicate `qperm'/2:
|
|
<stdin>:001: in list element #2:
|
|
<stdin>:001: type error in unification of argument
|
|
<stdin>:001: and constant `"foo"'.
|
|
<stdin>:001: argument has type `int',
|
|
<stdin>:001: constant `"foo"' has type `string'.
|
|
For more information, recompile with `-E'.
|
|
Compilation error(s) occurred.
|
|
?- qperm(List, [1]).
|
|
<stdin>:026: Inferred :- pred query((list.list(int))).
|
|
<stdin>:014: In clause for `run(di, uo)':
|
|
<stdin>:014: in call to predicate `mdb_query.query'/1:
|
|
<stdin>:014: mode error: arguments `List' have the following insts:
|
|
<stdin>:014: free
|
|
<stdin>:014: which does not match any of the valid modes for the callee,
|
|
<stdin>:014: because of the following error.
|
|
<stdin>:026: In clause for `query(out(not_reached))':
|
|
<stdin>:026: in argument 1 of call to predicate `interactive.qperm'/2:
|
|
<stdin>:026: mode error: variable `HeadVar__2' has instantiatedness `free',
|
|
<stdin>:026: expected instantiatedness was `ground'.
|
|
For more information, recompile with `-E'.
|
|
Compilation error(s) occurred.
|
|
?- quit.
|
|
|
|
mdb> cc_query interactive list
|
|
?- append(X, Y, ['a', 'b', 'c']).
|
|
<stdin>:017: Inferred :- pred query((list.list(character)),
|
|
<stdin>:017: (list.list(character))).
|
|
<stdin>:017: Inferred :- mode query(out, out) is multi.
|
|
X = [], Y = ['a', 'b', 'c'], true.
|
|
?- qperm([1,2,3], List).
|
|
<stdin>:017: Inferred :- pred query((list.list(int))).
|
|
<stdin>:017: Inferred :- mode query(out) is nondet.
|
|
List = [1, 2, 3], true.
|
|
?- qperm([1,2,3], List), List = [2 | _].
|
|
<stdin>:001: In clause for predicate `mdb_query.query'/2:
|
|
<stdin>:001: warning: variable `_2' occurs more than once in this scope.
|
|
<stdin>:011: In clause for predicate `mdb_query.run'/2:
|
|
<stdin>:011: warning: variable `_2' occurs more than once in this scope.
|
|
<stdin>:012: In clause for predicate `mdb_query.run'/2:
|
|
<stdin>:012: warning: variable `_2' occurs more than once in this scope.
|
|
<stdin>:017: In clause for predicate `mdb_query.query'/2:
|
|
<stdin>:017: warning: variable `_2' occurs more than once in this scope.
|
|
<stdin>:017: Inferred :- pred query((list.list(int)), (list.list(int))).
|
|
<stdin>:017: Inferred :- mode query(out, out) is nondet.
|
|
List = [2, 1, 3], _2 = [1, 3], true.
|
|
?- qperm([1,2,3], List), List = [4 | _].
|
|
<stdin>:001: In clause for predicate `mdb_query.query'/2:
|
|
<stdin>:001: warning: variable `_2' occurs more than once in this scope.
|
|
<stdin>:011: In clause for predicate `mdb_query.run'/2:
|
|
<stdin>:011: warning: variable `_2' occurs more than once in this scope.
|
|
<stdin>:012: In clause for predicate `mdb_query.run'/2:
|
|
<stdin>:012: warning: variable `_2' occurs more than once in this scope.
|
|
<stdin>:017: In clause for predicate `mdb_query.query'/2:
|
|
<stdin>:017: warning: variable `_2' occurs more than once in this scope.
|
|
<stdin>:017: Inferred :- pred query((list.list(int)), (list.list(int))).
|
|
<stdin>:017: Inferred :- mode query(out, out) is nondet.
|
|
No solution.
|
|
?- quit.
|
|
|
|
mdb> io_query interactive list
|
|
run <-- main.
|
|
[1, 3, 5, 2, 4]
|
|
run <-- if { append(X, Y, ['a', 'b', 'c']) } then print("X = "), print(X), print(", Y = "), print(Y), nl else print("No solution\n").
|
|
X = [], Y = ['a', 'b', 'c']
|
|
run <-- if { qperm([1,2,3], List) } then print(List), nl else [].
|
|
[1, 2, 3]
|
|
run <-- if { qperm([1,2,3], List), List = [2 | _] } then print(List), nl else { true }.
|
|
[2, 1, 3]
|
|
run <-- if { qperm([1,2,3], List), List = [4 | _] } then print(List), nl else print("No solution, as expected."), io__nl.
|
|
No solution, as expected.
|
|
run <-- quit.
|
|
|
|
mdb> continue -n -S
|
|
[1, 3, 5, 2, 4]
|