LISP beni yine zorluyor ... Neden bir listedeki son elemanın değerini alamıyorum? Bir liste buna benzer kurdunuz:LISP arabası?
Şimdi(setq bar '(((1 2) 3 4 5)((6 7) 8 9 10)))
Ben 4 kişilik bir dönüş olsun:
(cdddar bar)
:
(caddar bar)
(5) için bir dönüş yoktur Ama ben bunun için 5 tane alamıyorum:
Neden böyle? d 5'in değerini nasıl alabilirim?
Hata:
; Warning: This function is undefined:
; CADDDAR
Error in KERNEL:%COERCE-TO-FUNCTION: the function CADDDAR is undefined.
[Condition of type UNDEFINED-FUNCTION]
Cevap: (araba (cdddar lst)) .... şimdi neden bu! = Cadddar, anlamıyorum. – toast
LISP uygulamanızın bağırsaklarının derinliklerinde bir yer: (defun cadr (x) ...) (defun cdar (x) ...) (defun caar (x) ...) (defun cddr (x) ...) ve benzerleri 1 ile 4 arasındaki uzunluktaki 'a' ve 'd' kombinasyonları için. Çok fazla olduğu için, özellik 5 uzunluğunu içermez. # 'Cdadr ailesi işlevleri hakkında özel bir şey yok. Benzersiz olarak yorumlanamazlar. Onlar sadece normal fonksiyonlardır. Boşlukları doldurmak için bazı yenilerini kabul edersiniz (defun ...). – jtdubs