Projesi de dahil Lisps, dinamik yazıldığında ve 'lisp şekilde' tek bir veri yapısı üzerinde birçok işlevi yerine farklı görevler için farklı veri yapılarını sahip olmaktır.
Yani soru "listenin sonunda null adlı gerektiren noktası nedir?" sormak için doğru olanı değil.
cons
işlevi, cons
nesnesini veya nil
ikinci bağımsız değişkeni olarak vermenizi gerektirmez. Ikinci bağımsız değişken cons
nesnesi veya nil
değilse, bir liste yerine bir çift alırsınız ve çalışma zamanı liste notasyonu kullanarak ancak bir nokta ile yazdırmaz.
Yani bir listede şeklindedir şey inşa etmek istiyorsanız, o zaman cons
ikinci argüman olarak bir liste verir.Başka bir şey inşa etmek istiyorsanız, ikinci argümanı olarak cons
başka bir şey verin.
Çiftler, tam olarak iki değeri olan bir veri yapısı istiyorsanız yararlıdır. Bir çift ile, uzunluğunu işaretlemek için sonunda nil gerekmez, bu yüzden biraz daha verimli. Çiftlerin bir listesi, bir anahtarın değer haritasının basit bir uygulamasıdır; Ortak lisp, standart kütüphanesinin bir parçası olarak bu tür emlak listelerini destekleyecek işlevlere sahiptir.
Asıl soru, "neden aynı çiftleri ve listeleri aynı cons
işleviyle oluşturursunuz?" Sorusunun yanıtı, "neden yalnızca bir taneye ihtiyaç duyduğunuzda iki veri yapısına sahipsiniz?"