2016-03-27 27 views
1

adreslerini kullanarak çıktı alın. Listede yer alan ve listedeki her öğeyi bir sayı değeri döndüren başka bir işleve geçiren bir işlev var. Sonuç listesinin çıktısını almak için bir liste alan fonksiyona ihtiyacım var. map'un nasıl çalıştığına benzer.Bir listedeki her öğede bir işlev çalıştırın ve

Şimdiye kadar sahip olduğum şeyler ama beklenmedik çıktı veriyor.

(define (lister x) 
    (cond ((null? x) '()) 
    (cons (solver (car x)) (lister (cdr x)))) 
) 

(lister '(
    (element 0) 
    (element 3) 
)) 

beklenen çıkışı '(0 3) olmalıdır ama '() dönüyor.

+0

'Ne solver' edilir? –

+0

Sadece rakamı (eleman x) 'de döndüren keyfi bir işlev. Yani, örneğin, '(element 0)' için '' '' '' '' '' '' '' döndürür. – DeadCake

cevap

1

cond kullanımı yanlış.

Dene:

(define (lister x) 
    (cond [(null? x) '()] 
    [else (cons (solver (car x)) (lister (cdr x)))] 
) 
) 

veya kullanım if:

(define (lister x) 
    (if (null? x) 
    '() 
    (cons (solver (car x)) (lister (cdr x))) 
) 
) 
İlgili konular