> :let {var} ?= {expr}            This is a conditional variable
assignment operator,
>                                 it only has an effect if the variable
is not yet
>                                 defined. This statement:
>
>                                          let foo ?= "bar"
>
>                                 is exactly equivalent to this:
> 
>                                          if !exists("foo")
>                                             let foo = "bar"
>                                          endif

Along those lines, why not define a conditional attribute that would
apply to functions?

:fu[nction][!?] {name}([arguments]) [range] [abort] [dict]
                  ...
                                  
                        When a function by this name already exists and
[!] or
                  [?] is not used an error message is given.  When [!]
is
                  used, an existing function is silently replaced; when
                  [?] is used, the function is ignored.

The same goes for :command[?]

Reply via email to