extend.pl

loading
details
attribute value
description
owner Johannes Waldmann
uploaded 2017-08-17 03:45:08.0
disk size 645 Bytes
downloadable true
type
attribute value
name no_type
processor id 1
description this is the default benchmark type for rejected benchmarks and benchmarks that are not associated with a type.
owning community none
loading contents
%Source: Random examples used for debugging termination analysis for arithmetic Prolog programs
%query:extend(g,f).
% extend(In,Out) is true if Out is a list that contains all numbers between the minimal and the maximal number in In.

extend(In, Out) :- min(In, Min), max(In, Max), range(Min, Max, Out).

range(Low, High, []) :- Low > High.
range(Low, High, Result) :- Low =< High, range(Low + 1, High, RecursiveResult), Temp is Low, Result = [Temp|RecursiveResult].

min([X], X).
min([X|Xs], X) :- min(Xs, Y), X =< Y.
min([X|Xs], Y) :- min(Xs, Y), X > Y.

max([X], X).
max([X|Xs], X) :- max(Xs, Y), X >= Y.
max([X|Xs], Y) :- max(Xs, Y), X < Y.
popout

content may be truncated. 'popout' for larger text window.

actions get anonymous link download benchmark