Mi chiedo chi può spiegare la logica del design dietro le seguenti caratteristiche di autolisp/visual lisp? Per me sembrano volare di fronte alla pratica del software accettato ... mi manca qualcosa?Qualcuno può spiegare le decisioni di progettazione di Autolisp/visual lisp a me?
- Tutte le variabili sono globali di default (cioè a meno che non posto dopo un
/
negli argomenti della funzione) - dati di lettura/scrittura da AutoCAD richiede di mettere roba in una lista di associazione con un sacco di numeri di magia.
10
significa coordinate x/y,90
significa lunghezza dell'elenco delle coordinate,63
significa colore, ecc. Ok, potresti memorizzarli in alcune costanti ma ciò significherebbe ancora più globali, e la documentazione ti incoraggia a usare direttamente i numeri magici. - Lisp è un linguaggio in stile funzionale, che incoraggia la programmazione mediante ricorsione rispetto all'iterazione, ma la ricorsione della coda è afaik non ottimizzata in visual lisp che porta a pile di chiamate orrende - a meno che, naturalmente, non si iterazioni. Ma la sintassi del loop è molto restrittiva; per esempio. non è possibile interrompere o restituire un valore da un ciclo a meno che non si inserisca un qualche tipo di flag nella condizione di terminazione. Risultato, brutto codice.
- Generalmente si è costretti a dichiarare variabili in tutto il luogo che vola di fronte alla programmazione funzionale, quindi perché utilizzare un linguaggio funzionale (-ish)?
"potrebbe aver avuto un po '" ... nah ", loro" solo "hanno preso" così com'è stato, senza il permesso dell'autore presumibilmente, e non si sono mai presi la briga di migliorarlo per paura di incompatibilità arretrata. –
@Will - Man. Immagino che lo spieghi allora; l'originale XLISP era un progetto giocattolo per lo scrittore, non qualcosa che stava promuovendo seriamente. – Inaimathi
Le date dal 1983 al 1986 non sono precedenti all'eccellenza del Lisp, mi spiace. Nel 1986, Common Lisp era già lì e quasi la stessa cosa che è stata standardizzata nel 1994. Non è un caso di predare, ma un caso di non avere la minima idea. AutoLisp era peggiore di alcuni Lisps negli anni '60. – Kaz