PatternCanonicalForm - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


StringTools

  

PatternEquivalent

  

determine whether two strings determine equivalent patterns

  

PatternCanonicalForm

  

compute the pattern canonical form of a string

 

Calling Sequence

Parameters

Description

Examples

Calling Sequence

PatternEquivalent( s, t )

PatternCanonicalForm( s )

PatternCanonicalForm( s, 'base' = ch )

Parameters

s

-

Maple string

t

-

Maple string

ch

-

character; Maple character (string of length equal to one)

Description

• 

The PatternEquivalent command determines whether the two strings s and t define equivalent (isomorphic) patterns. Two strings s and t are pattern equivalent if they have the same length and if, for all indices i and j with 1<=i<j<=lengths one has si=sj if, and only if, ti=tj.

• 

The PatternCanonicalForm command computes the pattern canonical form of the string s. This is defined to be the lexicographically least string pattern equivalent to s. Note that two strings are pattern equivalent precisely when they have the same pattern canonical form.

• 

Since the numerically least character that can appear in a Maple string has ASCII value equal to 1, and low ASCII values are generally not printable, the PatternCanonicalForm command takes a 'base' = ch option, which allows you to specify the numerically least character you would like to appear in the output string. In the presence of this option, the pattern canonical form is computed using the specified character rather than the character Char( 1 ). This option is intended mainly for interactive use and debugging. The PatternCanonicalForm command runs measurably faster in the absence of the base option.

• 

All of the StringTools package commands treat strings as (null-terminated) sequences of 8-bit (ASCII) characters.  Thus, there is no support for multibyte character encodings, such as unicode encodings.

Examples

withStringTools&colon;

PatternEquivalentabc&comma;xyz

true

(1)

PatternEquivalentabc&comma;xyx

false

(2)

VisiblePatternCanonicalFormabc

\1\2\3

(3)

PatternCanonicalFormabc&comma;base=a

abc

(4)

PatternCanonicalFormxyz&comma;base=a

abc

(5)

PatternCanonicalFormxyx&comma;base=a

aba

(6)

See Also

string

StringTools

StringTools[Search]