Phân vùng tạo chuỗi các chuỗi để chức năng bạn ánh xạ trên chúng cần phải mong đợi một chuỗi gồm hai mục. Có một số cách để diễn tả điều này:
(def tmp [ 1 2 3 9 4 8])
user> (map #(- (second %) (first %)) (partition-all 2 tmp))
(1 6 4)
user> (map #(apply - (reverse %)) (partition-all 2 tmp))
(1 6 4)
user> (map (fn [[small large]] (- large small)) (partition-all 2 tmp))
(1 6 4)
Phiên bản sử dụng áp dụng là khác nhau bởi vì nó sẽ vẫn "làm việc" trên danh sách dài lẻ:
user> (map #(apply - (reverse %)) (partition-all 2 [1 2 3 4 5 6 7]))
(1 1 1 -7)
Những người khác sẽ sụp đổ vào đầu vào không hợp lệ, mà bạn có thể thích.
Nguồn
2012-10-09 19:04:39
Từ ví dụ, có vẻ như bạn trừ số * đầu tiên * từ * giây *, không phải theo cách khác xung quanh, phải không? –