There are some, as listed in the documentation links by @Patrick.
But a lot of them are very old and should have been rewritten a long time ago.
For instance the %VERIFY macro, which emulates the VERIFY data step function, using a macro loop. It works, but if you have any concerns about the execution speed, you should use e.g. %sysfunc(verify(&x,&a)) instead of %verify(&x,&a). Also, if you are debugging a macro call with SYMBOLGEN, a single call to %verify can generate many lines of irrelevant output.
The same goes for some of the others. My advice is that if a macro is supposed to emulate a datastep function, you are probably better off calling the datastep function using %SYSFUNC or %QSYSFUNC. Same for the %TSLIT macro, which probably was written before the QUOTE function got a second parameter - so what it does is equivalent to using the QUOTE function with a single quote as the second parameter:
69 options symbolgen;
70 %let a=test;
71 %put %tslit(&a);
SYMBOLGEN: Macro variable A resolves to test
SYMBOLGEN: Macro variable VALUE resolves to test
SYMBOLGEN: Macro variable VALUE resolves to test
SYMBOLGEN: Macro variable S1 resolves to '"
SYMBOLGEN: Some characters in the above value which were subject to macro quoting have been unquoted for printing.
SYMBOLGEN: Macro variable S2 resolves to "'
SYMBOLGEN: Some characters in the above value which were subject to macro quoting have been unquoted for printing.
SYMBOLGEN: Macro variable V1 resolves to test
SYMBOLGEN: Some characters in the above value which were subject to macro quoting have been unquoted for printing.
SYMBOLGEN: Macro variable V2 resolves to "test"
SYMBOLGEN: Some characters in the above value which were subject to macro quoting have been unquoted for printing.
SYMBOLGEN: Macro variable S2 resolves to "'
SYMBOLGEN: Some characters in the above value which were subject to macro quoting have been unquoted for printing.
SYMBOLGEN: Macro variable S1 resolves to '"
SYMBOLGEN: Some characters in the above value which were subject to macro quoting have been unquoted for printing.
SYMBOLGEN: Macro variable V3 resolves to 'test'
SYMBOLGEN: Some characters in the above value which were subject to macro quoting have been unquoted for printing.
'test'
72 %put %sysfunc(quote(&a,%str(%')));
SYMBOLGEN: Macro variable A resolves to test
'test'
The TSLIT call is shorter code, but it is also slower, and it adds another unnecessary layer of complexity to the program.
... View more