Let Over Lambda Chapter 3 Section 'Unwanted Capture' mówi:..Co może pójść nie tak, kiedy definiuję makro i po prostu używam wystarczająco rzadkiej nazwy dla zmiennej tymczasowej?
„Na pewno możemy myśleć o tyle rzadkich imion tak, że problem nie pokazuje się tak, w wielu przypadkach, pakietów i inteligentnego zmiennego nazewnictwa może rozwiązać problem zmiennej wychwytywania Jednak najpoważniejszym zmienna wychwytywania błędów nie wynikają bezpośrednio w kodzie stworzony przez programistę. Większość problemów zmienna przechwytywania powierzchniowe tylko gdy inne makra użyć makra (połączyć ze swoją makro) w taki sposób, że nie przewidujemy. "
a następnie nie daje mi przykładu na odważną część. Jaki byłby jeden z takich przykładów? Wyobraź sobie hipotetyczny zespół Lisp dev, w którym jego szalony szef zakazał używania gensymu lub czegokolwiek, co tworzy niezamieszkane symbole, a programiści po prostu uciekają się do rzucania alfanumerycznymi kostkami, aby wymyślić losowe nazwy zmiennych, takie jak temp-27s63f8sk2n lub sum-3t84hj4df za każdym razem, gdy tęsknią za gensym. Jaki byłby przykład, kiedy drużyna będzie miała kłopoty?
Mówiąc o tym, Emacs 24.3.1 definiuje kropki i dolistkę bez użycia nieopisanych symboli. Dziwne.
Dlaczego ludzie decydują się na zamknięcie tego? To prawdziwe i złożone pytanie. – d11wtq