Chức năng chuyển vị ma trận này hoạt động, nhưng tôi đang cố gắng hiểu được việc thực hiện từng bước và tôi không hiểu.Hiểu hàm chuyển vị ma trận này trong Haskell
transpose:: [[a]]->[[a]]
transpose ([]:_) = []
transpose x = (map head x) : transpose (map tail x)
với
transpose [[1,2,3],[4,5,6],[7,8,9]]
nó sẽ trả về:
[[1,4,7],[2,5,8],[3,6,9]]
Tôi không hiểu thế nào các nhà điều hành nối đang làm việc với bản đồ. Nó được nối mỗi đầu x trong cùng một hàm gọi? Làm sao?
là này
(map head x)
tạo ra một danh sách các yếu tố đầu của mỗi danh sách?
isn này 't một câu trả lời, nhưng nói chung khi tôi đang cố gắng để quấn đầu của tôi xung quanh một cái gì đó trong Haskell, tôi sẽ dành một số thời gian chơi với nó trong GHCi. Hãy thử "đầu bản đồ" hoặc "đuôi bản đồ" trên một vài danh sách các danh sách và bạn sẽ thấy cho chính mình cách chúng hoạt động. Nếu bạn đến từ một thế giới bắt buộc, bản đồ và nếp gấp có thể hơi khó khăn để lúng túng. Chúng là cấu trúc lặp chính của bạn - về cơ bản là thay thế "cho" và "trong khi" - vì vậy bạn sẽ sớm học cách yêu chúng. – rtperson
+1 Grok (blahh) –