2016-10-20 3 views
1

ich eine transponieren Funktion haben, die für feste aritieseine Liste von Listen clojure transponieren

(defn transpose [a b c] 
    (map list a b c)) 

(transpose '(1 2 3) '(4 5 6) '(7 8 9)) 
((1 4 7) (2 5 8) (3 6 9)) 

(apply transpose (list '(1 2 3) '(4 5 6) '(7 8 9))) 
((1 4 7) (2 5 8) (3 6 9)) 

Aber wie kann ich verallgemeinern dies für n Argumente funktioniert, damit ich es wie folgt nennen könnte:

(transpose '(1 2) '(4 5)) 
(transpose '(1 2 3) '(4 5 6) '(7 8 9)) 
... 

Ich fühle wie gedacht, ich brauche etwas wie die folgenden

Aber ich kann es nicht zum Laufen bringen.

Antwort

1

Sie sind so nah:

(defn transpose [& xs] 
    (apply map list xs)) 
Verwandte Themen