Package jason.stdlib

Class concat

All Implemented Interfaces:
InternalAction, Serializable

@Manual(literal=".concat(arg0,arg1[,...],result)", hint="concatenates strings or lists", argsHint={"the first term","the term to be concatenated with prior","the term to be concatenated with prior ones [optional]","the result of the concatenation"}, argsType={"term or list","term or list","term or list","string"}, examples={".concat(\"a\",\"b\",X): X unifies with \"ab\"",".concat(\"a\",\"b\",\"a\"): false",".concat(\"a b\",1,a,X): X unifies with \"a b1a\"",".concat(\"a\", \"b\", \"c\", \"d\", X): X unifies with \"abcd\"",".concat([a,b,c],[d,e],[f,g],X): X unifies with [a,b,c,d,e,f,g]"}, seeAlso={"jason.stdlib.delete","jason.stdlib.length","jason.stdlib.member","jason.stdlib.sort","jason.stdlib.shuffle","jason.stdlib.substring","jason.stdlib.prefix","jason.stdlib.suffix","jason.stdlib.nth","jason.stdlib.max","jason.stdlib.min","jason.stdlib.reverse","jason.stdlib.difference","jason.stdlib.intersection","jason.stdlib.union"}) public class concat extends DefaultInternalAction

Internal action: .concat.

Description: concatenates strings or lists.

Parameters:

  • + arg[0] ... + arg[n-1] (any term or list): the terms to be concatenated.
  • +/- arg[n]: the result of the concatenation.
Parameters that are not string are concatenated using the toString method of their class.

Examples:

  • .concat("a","b",X): X unifies with "ab".
  • .concat("a","b","a"): false.
  • .concat("a b",1,a,X): X unifies with "a b1a".
  • .concat("a", "b", "c", "d", X): X unifies with "abcd".
  • .concat([a,b,c],[d,e],[f,g],X): X unifies with [a,b,c,d,e,f,g].

Note: this internal action does not implement backtrack. You if need backtrack, you can add and use the following rules in your code:

  concat([ ], L, L).
  concat([H|T], L, [H|M]) :- concat(T, L, M).
  
See Also: