char_to_free: Convert character vectors to free objects

char_to_freeR Documentation

Convert character vectors to free objects

Description

Convert character vectors to free objects

Usage

char_to_matrix(x)

Arguments

x

A character vector

Details

Function char_to_matrix() gives very basic conversion between character vectors and free objects. Current functionality is limited to strings like “aaabaacd”, which would give a^3ba^2cd. It would be nice to take a string like “a^3b^(-3)” but this is not yet implemented.

Function char_to_free() is a vectorized version that coerces output to free.

Note

The function is not particularly robust; for example, passing anything other than letters a-z or A-Z will give possibly undesirable behaviour.

Upper-case letters A-Z are interpreted by char_to_matrix() as the inverse of their corresponding lower-case equivalents. This behaviour is inherited by char_to_free() and as.free(), so that as.free("A") == inverse(as.free("a")).

Function char_to_free() is consistent with the default print options (which are that the symbols are the lowercase letters a-z). If you change the symbols' names, for example options(freegroup_symbols=sample(letters)), then things can get confusing. The print method does not change the internal representation of a free object, which is a list of integer matrices.

Author(s)

Robin K. S. Hankin

See Also

print.free

Examples


char_to_matrix("aaabcABC")

rfree(10,3) + as.free('xxxxxxxxxxxx')

as.free(letters)*7

all(is.id(as.free(letters) + as.free(LETTERS)))


as.free('')  # identity element


RobinHankin/freegroup documentation built on March 11, 2024, 12:32 a.m.