The functions built in to SML are powerful enough to describe quite complex transformations between source and target models. TM also gives you the ability to create and use arbitrary User Defined functions. User Defined functions can be used in order to cope with scenarios where pure SML is insufficient; for example, advanced statistical analysis or check sum calculations require functions that are not available in SML. Such functions can only currently be written in Java, and can be used to make calls on standard Java library functions or to create new functions tailored to the specific transform being defined.
See also: