File: set1.lgt

package info (click to toggle)
yap 5.1.1-3
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 16,124 kB
  • ctags: 14,650
  • sloc: ansic: 122,796; perl: 22,545; sh: 3,768; java: 1,277; makefile: 1,191; xml: 739; tcl: 624; lisp: 142; awk: 9
file content (27 lines) | stat: -rw-r--r-- 516 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

:- object(set(_type),
	extends(set)).

	:- info([
		version is 1.0,
		author is 'Paulo Moura',
		date is 2006/2/2,
		comment is 'Set predicates with elements constrained to a single type.']).

	valid(Set) :-
		nonvar(Set),
		parameter(1, Type),
		\+ \+ valid(Set, Type).

	valid([], _) :-
		!.
	valid([Element], Type) :-
		!,
		Type::valid(Element).
	valid([Element1, Element2| Set], Type) :-
		Element1 @< Element2,
		Type::valid(Element1),
		Type::valid(Element2),
		valid([Element2| Set], Type).

:- end_object.