Tôi là người mới sử dụng Clojure. Tôi đang cố gắng để có được hai bản sao của một vector của phù hợp với thẻ. Các phi DRY cách mà tôi có thể đưa ra làCác vectơ lặp lại trong Clojure
(def suits [:clubs :diamonds :hearts :spades])
(def two-times (concat suits suits))
Có phải là một cách thêm chức năng (ngay cả khi phải mất thêm các ký tự :-)). Nếu tôi muốn N lần thì sao? Bất kỳ đề xuất?
Tất cả những điều tôi cố gắng, như
(replicate 2 suits)
kết quả trong hai vectơ riêng biệt:
([:clubs :diamonds :hearts :spades] [:clubs :diamonds :hearts :spades])
Làm thế nào để "san bằng" cấu trúc?
Không có gì không có chức năng về việc sử dụng giá trị của một Var bên trong 'def' hình thức tạo ra một quần một Var khác. Trong thực tế, đó là điều tự nhiên để làm nếu Var thứ hai phụ thuộc vào lần đầu tiên. Tất nhiên nếu bạn muốn có một phương pháp chung để nối n bản sao của một seq, trong đó n có thể hoặc có thể không được biết trước, thì bạn cần một giải pháp tốt hơn (như được tìm thấy trong các câu trả lời ở đây). –
Thực ra, đó là ý của tôi (N bản sao). Tôi đồng ý rằng chức năng hai lần của tôi là "chức năng" - nó chỉ là không thực tế nếu tôi muốn 100 bản sao :-). – Ralph