2010-07-03 24 views
8

Listelerde car ve cdr çalışmalarının nasıl çalıştığı konusunda kafam karıştı. İşte ne denedim bir örnektir:Şema: Bir listenin CAR ve CDR'si

'(a b c d e f) 
quote 
((a b c d e f)) 
a 
() 

nasıl quote ait car olabileceğini anlamak mümkün değilim: değeri '(A B C D E F) girerken

(define sample (read)) 
(display sample) 
(display (car sample)) 
(display (cdr sample)) 
(display (car (cadr sample))) 
(display (cdr (cdr sample))) 

, burada ne alıyorum sample. Ayrıca, neden (cdr sample) çıktı ((a b c d e f))?

Dil: DrScheme - R5RS - basitçe liste yazın istiyorsa Şema

cevap

17

, sadece yazmalısınız. Yazdıklarınızidi, çünkü ' işleci (quote ...) için kısa.

Listeniz kelimenin tam anlamıyla quote ve ikinci öğe öğesine sahiptir. Elbette, kaynak kodu yazarken S-ifadelerinin yürütülmesini önlemek için quote'a ihtiyacınız vardır.

+0

Teşekkür ederiz. Şema için komple bir yeni bendim. Bu yardımcı olur! –