Package jason.stdlib
Class sort
java.lang.Object
jason.asSemantics.DefaultInternalAction
jason.stdlib.sort
- All Implemented Interfaces:
InternalAction
,java.io.Serializable
@Manual(literal=".sort(list,result)", hint="sorts a list of terms using the \"natural\" order. For different types, the order is: numbers < atoms < structures < lists", argsHint={"the list the be sorted","the resulting sorted list"}, argsType={"list","list"}, examples={".sort([C,b(4),A,4,b(1,1),\"x\",[],[c]],X): X unifies with [4,\"x\",[],[c],b(4),b(1,1),A,C]",".sort([a],[b,c],[a,b],~a(3),a(e,f),b,a(3)],X): X unifies with [[a],[a,b],[b,c],b,a(3),a(e,f),~a(3)]",".sort(b(3),a(10)[30],a(10)[5],a,a(d,e)],X): X unifies with [a,a(10)[5],a(10)[30],b(3),a(d,e)]",".sort([3,2,5],[2,3,5]): true",".sort([3,2,5],[a,b,c]): false"}, seeAlso={"jason.stdlib.concat","jason.stdlib.delete","jason.stdlib.length","jason.stdlib.member","jason.stdlib.shuffle","jason.stdlib.nth","jason.stdlib.max","jason.stdlib.min","jason.stdlib.reverse","jason.stdlib.difference","jason.stdlib.intersection","jason.stdlib.union"}) public class sort extends DefaultInternalAction
Internal action: .sort
.
Description: sorts a list of terms. The "natural" order for each type of
terms is used. Between different types of terms, the following order is
used:
numbers < strings < lists < literals (by negation, arity, functor, terms, annotations) < variables
Parameters:
- + unordered list (list): the list the be sorted.
- +/- ordered list (list): the sorted list.
Examples:
-
.sort([c,a,b],X)
:X
unifies with[a,b,c]
. -
.sort([C,b(4),A,4,b(1,1),"x",[],[c],[a],[b,c],[a,b],~a(3),a(e,f),b,a(3),b(3),a(10)[30],a(10)[5],a,a(d,e)],X)
:X
unifies with[4,"x",[],[a],[c],[a,b],[b,c],a,b,a(3),a(10)[5],a(10)[30],b(3),b(4),a(d,e),a(e,f),b(1,1),~a(3),A,C]
. -
.sort([3,2,5],[2,3,5])
: true. -
.sort([3,2,5],[a,b,c])
: false.
- See Also:
concat
,delete
,length
,member
,nth
,max
,min
,reverse
,difference
,intersection
,union
, Serialized Form
-
Field Summary
Fields Modifier and Type Field Description private static InternalAction
singleton
-
Constructor Summary
Constructors Constructor Description sort()
-
Method Summary
Modifier and Type Method Description protected void
checkArguments(Term[] args)
static InternalAction
create()
java.lang.Object
execute(TransitionSystem ts, Unifier un, Term[] args)
Executes the internal action.int
getMaxArgs()
int
getMinArgs()
Methods inherited from class jason.asSemantics.DefaultInternalAction
canBeUsedInContext, destroy, prepareArguments, suspendIntention
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Field Details
-
singleton
-
-
Constructor Details
-
sort
public sort()
-
-
Method Details
-
create
-
getMinArgs
public int getMinArgs()- Overrides:
getMinArgs
in classDefaultInternalAction
-
getMaxArgs
public int getMaxArgs()- Overrides:
getMaxArgs
in classDefaultInternalAction
-
checkArguments
- Overrides:
checkArguments
in classDefaultInternalAction
- Throws:
JasonException
-
execute
public java.lang.Object execute(TransitionSystem ts, Unifier un, Term[] args) throws java.lang.ExceptionDescription copied from interface:InternalAction
Executes the internal action. It should return a Boolean or an Iterator. A true boolean return means that the IA was successfully executed. An Iterator result means that there is more than one answer for this IA (e.g. see member internal action). - Specified by:
execute
in interfaceInternalAction
- Overrides:
execute
in classDefaultInternalAction
- Throws:
java.lang.Exception
-