2016-04-10 12 views
0

In Schema versuche ich, eine Liste zu durchlaufen, indem ich jedes Element aus einem Teil der Liste hinzufüge.Hinzufügen von Elementen in einem Listenschema

Zum Beispiel, wenn ich ((1 2 5) (1 2) (1 5) (1) (2 5) (2) (5)()) für eine Liste hatte, versuche ich hinzuzufügen erster Teil (1 2 5) und dann der zweite Teil (1 2) und so weiter, um zu sehen, ob jedes Element zu einer bestimmten Zahl addiert wird.

Hoffe das macht Sinn, versuchte mein Bestes, um dies zu erklären.

Wenn jemand mir helfen könnte, dieses Problem herauszufinden, würde ich es wirklich schätzen.

Antwort

0

Um die Zahlen von einem (kleinen) Liste hinzufügen Sie apply verwenden können:

> (apply + '(1 2 3)) 
6 

die die gleichen wie

> (+ 1 2 3) 
6 

Um dies von Unterlisten auf eine Liste anzuwenden ist, verwenden map:

(define (f lst) 
    (map (lambda (sublst) (apply + sublst)) 
     lst)) 

> (f '((1 2 5) (1 2) (1 5) (1) (2 5) (2) (5)())) 
'(8 3 6 1 7 2 5 0) 

Für größere Liste möchten Sie vielleichtersetzenvon foldl oder gleichwertig.

+0

Vielen Dank !! Genau das habe ich gesucht. – Rosie

Verwandte Themen