Często eksperymentuję w REPL i powiem coś takiego:
subset Bar of Int where * %% 57;
Potem przez Bar
chwilę bawię się sprawdzaniem rzeczy.
Wszystko jest szczęśliwe, dopóki nie uświadomię sobie, że chcę zmienić definicję Bar
.
Jeśli przedefiniuję Bar
, otrzymam Redeclaration of symbol
wyjątek.
Próbowałem użyć MONKEY-TYPING
i augment
podoba mi się to:
use MONKEY-TYPING;
augment subset Bar of Int where * %% 37;
Ale to doprowadziło mnie do tego samego błędu.
Dlaczego tego chcę? Mogę więc iterować definicje mojego podzbioru (lub klasy lub innego symbolu), jednocześnie wykorzystując testy, które już wpisałem, które są w mojej historii.
use MONKEY-TYPING
aaugment
jednak nie działać prawidłowo w REPL (jeszcze?), Ponieważ potrzebuje dużo magii i taśmę kaczki.supersede
, ale uważam, że w chwili obecnej pozostaje to niewdrożone.