They're not functions, they're macros: functions that are called with their arguments unevaluated, and return code to be evaled in the environment of the call.
You can view macros as functions that run at compile time and that take code and return code instead of values