freegroup (version 1.1-8)

subs: Substitute and invert symbols

Description

Substitute and invert specific symbols in a free object

Usage

subsu(X, from, to)
subs(X, ...)
flip(X, turn)

Arguments

X

Object of class free

from,to,turn

Objects coerced to class free specifying symbols to alter. These arguments are coerced to symbols using getlet(as.free())

...

Named arguments for substitution

Author

Robin K. S. Hankin

Details

Function subsu(X,from,to) takes object X and transforms every symbol present in from into the symbol specified in to.

Function flip(X,turn) takes object X and replaces every symbol present in turn with its inverse.

Function discard(), documented at keep.Rd, effectively substitutes a symbol with the identity element (thereby discarding it).

Experimental function subs() is modelled on similar functionality in the freealg package and makes idiom such as subs(X,a='z') work as expected (viz, taking each instance of symbol a and replacing it with x).

See Also

abs,discard

Examples

Run this code

subsu(abc(1:10),abc(5),'z')
flip(abc(1:10),abc(5))


o <- rfree(30,5,10)

# Following tests should all be TRUE:
size(flip(o,'a'))   == size(o)
number(flip(o,'a')) == number(o)
total(flip(o,'a'))  == total(o)

size(subsu(o,'a','b'))   <= size(o)
number(subsu(o,'a','b')) <= number(o)
total(subsu(o,'a','b'))  <= total(o)


frog <- rfree()
subs(frog,a='x')

Run the code above in your browser using DataLab