2016-11-08 9 views
0

Ich versuche herauszufinden, wie ich die Werte, die ich in einer Liste haben, an eine Funktion übergeben könnte.Racket Pass List Elemente zu einer Funktion

Ex:

(define l (list (list 1) (list 2) (list 3 4))) --> l = '((1) (2) (3 4)) 

(define (myFunc el1 el2 el3) 
    ...Whatever is in my function). 

So wie würde ich in der Lage sein myFunc mit den Elementen in l zu nennen, würde ich (myFunc '(1) '(2) '(3 4)) haben.

+0

'(myFunc l anwenden)'? – Sylwester

Antwort

0

Versuchen Sie mit apply. Zum Beispiel:

(define l (list (list 1) (list 2) (list 3 4))) 

(define (my-func el1 el2 el3) 
    (+ (length el1) (length el2) (length el3))) 

(apply my-func l) ; => 4 

Here ist die Dokumentation.

+0

Super danke! Eine weitere Frage. Was wäre, wenn ich meine Listenwerte an ein Makro übergeben möchte, wie würde ich das tun können? Beispiel: (define-syntax myMacro (syntax-rules() (myMacro ...))) – RichardHendrix