Keyword function parameters in general and the "do:" parameter specifically

I am working on understanding how to write macros. In this example module is given:

defmodule Unless do
  def fun_unless(clause, do: expression) do
    if(!clause, do: expression)

  defmacro macro_unless(clause, do: expression) do
    quote do
      if(!unquote(clause), do: unquote(expression))

In this example “do: expression” seems to be what might be called a keyword parameter. Unfortunately, I’m not able to find any documentation that explains this syntax for function parameters. Would someone mind pointing me in the right direction? Thanks

These are the docs you’re likely looking for.

That looks helpful and I have recently skimmed those docs. I don’t, however, see any explicit mention of the keyword syntax for function parameters. Perhaps, it is implied somehow.

It works the same in the parameters as it does at the callsite of a function.

Ok. I am starting to get it. I think I’ll dig into the entire “Syntax reference” section of the docs. Thanks

It turns out that, for some unknown reason, I never paid any attention to keyword lists. After reading it’s all clear now. Thanks again.