Tre lispy lingue homoiconic, Dylan, Julia e Seph tutti trasferiti fuori dalle principali parentesi - quindi una chiamata di funzione ipotetico Common Lisp che sarebbe simile:Cosa perderebbe Clojure passando da parentesi come Dylan, Julia e Seph?
(print hello world)
sarà simile al seguente chiamata di funzione ipotetica
print(hello world)
nelle tre lingue sopra menzionate.
Sono stati Clojure a percorrere questa strada - cosa avrebbe dovuto sacrificare per arrivarci?
Ragionamento: A parte le incredibili pigri strutture dati funzionali in Clojure, e il miglioramento della sintassi per mappe e seguenti del regolamento provvisorio, il supporto per la lingua per la concorrenza, la piattaforma JVM, le attrezzature e la comunità impressionante - la cosa distintivo sul fatto che sia 'un LISP' sta conducendo una parentesi che dà omoiconicità che fornisce macro che forniscono l'astrazione della sintassi.
Ma se non hai bisogno di parentesi tonde - perché le hanno? Gli unici argomenti che posso pensare per il loro mantenimento sono
(1) riutilizzando strumento di supporto in emacs
(2) spingendo la gente a 'pensare in LISP' e non cercare di trattarlo come un altro linguaggio procedurale)
Una grande parte del estetica Lisp è il parseability banale e usabilità come dati del codice; ne perderai un po '. – zmccord
L'applicazione di funzione è solo una delle tante possibili forme. Stai proponendo di trattarli in modo diverso? Clojure ha già fatto una cosa terribile, abolendo le cellule. Andare oltre rovinerebbe completamente la lingua. –
Vedere anche http://stackoverflow.com/questions/643892/fixing-lisp-syntax. La domanda mi ricorda uno sviluppatore Pascal che sapevo che, di fronte all'uso di C, desiderava un set di macro che rendesse il C più simile a Pascal. Penso che ci sia sempre la tentazione di ridurre il tuo disagio con qualcosa di nuovo costringendolo ad essere più familiare. Eppure a volte è meglio per te avvicinarti a qualcosa di diverso a modo suo. – user100464