sábado, 15 de setembro de 2007

Desdefinindo coisas

Em lisp o ambiente de desenvolvimento e de execução é mesmo, permitindo que o programador crie o programa por partes, fazendo experiências em cada estágio do desenvolvimento. O problema é que a imagem fica poluída com funções e variáveis que foram abandonadas.

Para se livrar de um função indesejada existe a função fmakunbound:


(defun foo (x)
(+ x 1))

(foo 1)
=> 2

(fmakunbound 'foo)

(foo 1)
=> The function F is undefined.


De maneira equivalente existe a função makunbound para eliminar variáveis.


(devar x 1)

x
=> 1

(makunbound 'x)

x
=> The variable X is unbound.


Pacotes também podem ser apagados, neste caso com a função delete-package:


(defpackage foo (:use :cl))
(delete-package 'foo)


Só falta descobrir como apagar um classe.

Nenhum comentário: