Czy jakaś lisps obsługuje zagnieżdżone wyrażenie s na głowie? Na przykładCzy wszystkie seplenienie mają s-wyrażenia jako głowę, np. ((f 2) 3 4)? Jeśli nie, dlaczego?
((f 2) 3 4)
dla których (f 2)
przypuszczalnie ocenia do funkcji/makro do zastosowania na 3 4
.
Czy to możliwe? Czy istnieją techniczne ograniczenia, które zabraniają tego/powodują, że jest to niepraktyczne?
przykładem jest teraz w porządku. Wyjaśnienie nie tak naprawdę. Slot symboli to tylko połowa problemu. "Lisp-2" ma dwie przestrzenie nazw. Wartości nie są przechowywane w gniazdach. Wartości są wynikiem oceny wyrażeń. (let ((a (lambda() "hi))) (funcall a)) W tym przykładzie w Common Lisp nie ma żadnej" wartości symbolu ". Jest to odnośnik zmiennej leksykalnej. To nie jest dostęp do wartości symbolu. Symbol jest tylko artefaktem kodu źródłowego, ale nie faktycznym wykonaniem. –
Myślę, że powinieneś nieco zmienić treść drugiego akapitu. Być może zaczynając od "In Lisp-2s, z drugiej strony istnieją oddzielne przestrzenie nazw ..." Początkowo wpadłem w zakłopotanie, ponieważ myślałem, że w drugim akapicie wciąż mówisz o Lisp-1. Niemniej jednak, zaakceptowany. – spacingissue