Post by Björn LindbergPost by IngvarPost by IngvarAtt författaren därtill inte verkar ha
förstått till fullo vad DEFVAR faktiskt gör är skrämmande.
Lite fånigt exempel i det lilla, men tänk dig en medelstor till
[ Kodexempel borttaget ]
Post by Björn LindbergPost by IngvarTryck i en fil och kör. Tag sedan bort kommentaren innan defvar och
kör. Att glatt säga "det finns en kodkonvention, men jag tycker den är
ful, så jag ignorerar den" i ett introduktionsmaterial, där resultatet
av att INTE anamma konventionen är ypperst svårfunna buggar är, i min
mening, inte försvarbart.
Oavsett Xach så verkar ju boken onekligen ha brister!
Man behöver kanske inte vara så förmäten. Jag har i mitt arbete
förmånen(?) att ofta använda en annnan Lispdialekt, där en konvention
för dynamiska variabler inte existerar, och där asterisk inte utan
vidare kan användas i symbolnamn. Jag kan försäkra att det går att
hålla ordning på sina program ändå. Naturligtvis vill man alltid veta
om en variabel i ett visst sammanhang avser en dynamisk eller lexikal
sådan, men det går att göra på många olika sätt. Man kan ha andra
sorters konventioner till exempel.
Javisst. Jag hackade CL i ett par år innan jag började använda asterisker på
mina egna special-variabler. Jag har dock ingen lätt-att-hitta-kod som exempel
(de vettiga sakerna har blivit omskrivna, de mindre vettiga ligger arkiverade
i ett dammigt hörn av hårddisken och varken du eller jag vill se den koden,
speciellt inte jag).
Post by Björn LindbergNu använder jag för egen del alltid
asterisk-konventionen när jag programmerar Common Lisp, eftersom den
är etablerade för den dialekten, men jag skulle inte förkasta en hel
bok för att författaren möjligen har egna konventioner i detta
avseende.
Jag säger inte att boken är dålig, det kan jag inte. Jag har inte läst den,
men den har tillräckligt många varningstecken för att skicka den rätt långt
ner på listan över böcker att köpa (om du vill kan jag t.o.m lista dem).
Hyllmeter är en EXTREM bristvara och jag har inte råd att köpa ett större hus
just nu.
Post by Björn LindbergIngvars exempel ovan är tämligen krystat, och avsett att
vara det. Men innan vi har läst boken vet vi faktiskt inte om det är
ett exempel som alls motsvarar vad författaren ägnar sig åt.
jag vet inte om du läste författarens kommentar till Xachs ganska syrliga
sågande, men det tycktes mig att han mest tyckte att det var behändigt att
inte markera dynamiska variabler, för att det blev enklare att svänga fram och
tillbaka mellan dynamiska och lexikala bindningar. Det är iofs en ren smaksak,
men jag har tagit för vana att INTE göra just det, utan dynamik-deklarera
saker som behöver vara dynamiska och låta resten vara lexikala, just för att
ett evigt hattande fram och tillbaka brukade bita mig rätt hårt.
Numer blir jag mest biten när jag växlar mellan Common Lisp och Emacs Lisp.
Attans vad lexikala bindningar är trevligt.
Dougs exempel när det kan vara bra att hatta fram och tillbaka mellan dynamisk
och lexikal bindning är förresten näst intill identisk med min "kod med
problem" (gå till Reddit-sidan i början av tråden och sök efter "Say you have
a bunch of functions").
//Ingvar