In SKILL mode, you can unbind a symbol's value slot by assigning the special symbol unbound to it:
> f = 3 3> boundp 'f t> f = 'unbound unbound> f *Error* toplevel: undefined variable - f<<< Stack Trace >>>> boundp 'f nil
You can also unbind the function slot by putting nil there:
> putd 'f (getd 'car) primop:car> fboundp 'f primop:car> (f '(1 2 3)) 1> putd 'f nil nil> fboundp 'f nil> (f '(1 2 3)) *Error* eval: undefined function - f
However, in SKILL++ mode, symbols use the function slot exclusively, so putting nil there is the same as assigning the symbol to nil. Continuing from the previous example:
> toplevel 'ils ILS-> f nil
Is there a way to actually undefine a SKILL++ symbol? It seems you would need to unintern it from the SKILL oblist and/or remove it from the toplevel environment frame.