Function-like procedural macros are procedural macros that are invoked using the macro invocation operator (!).
These macros are defined by a public function with the proc_macro attribute and a signature of (TokenStream) -> TokenStream. The input TokenStream is what is inside the delimiters of the macro invocation and the output TokenStream replaces the entire macro invocation.
For example, the following macro definition ignores its input and outputs a function answer into its scope.