# This function converts its argument to string type.
string = function( x )
{
return string.(class(x))( x );
};
( string.("function") =
strip( function( x )
{
message( "run time error: Can't convert %s to string.";
class(x) );
exception();
} )
);
string.("NULL") = function( x )
{
return "";
};
string.scalar = function( x )
{
return sprintf( "%s"; x );
};
string.vector = function( x )
{
local( r; i );
r = fill( x.ne; "" );
r.eid = x.eid;
for ( i in seq( r.ne ) )
{
r[i] = sprintf( "%s"; x[i] );
}
return r;
};
string.matrix = function( x )
{
local( r; i; j );
r = fill( x.nr,x.nc; "" );
r.rid = x.rid;
r.cid = x.cid;
for ( i in seq( r.nr ) )
{
for ( j in seq( r.nc ) )
{
r[i;j] = sprintf( "%s"; x[i;j] );
}
}
return r;
};
string.table = function( x )
{
local( m );
for ( m in members( x ) )
{
x.(m) = string( x.(m) );
}
return x;
};
syntax highlighted by Code2HTML, v. 0.9.1