Tại saoTại sao cả bản đồ (^ 2) xs và bản đồ (2 ^) xs hoạt động như mong đợi trong Haskell?
map (^2) [1..10]
công việc và cũng
map (2^) [1..10]
làm việc?
Tôi hy vọng nó chỉ hoạt động với một trong số chúng, không phải cho cả hai.
Tôi nghĩ bản đồ sẽ lặp qua tất cả các yếu tố của [1..10]
và sau đó làm
[1^2, 2^2, 3^2, ...]
cho map (^2) [1..10]
. Sau đó, tôi hy vọng rằng khi được đưa ra map (2^) [1..10]
, nó sẽ mang lại lỗi sintax hoặc một cái gì đó, bởi vì nó cần các số sau ^
, không phải trước đây.
Tại sao bạn mong đợi nó chỉ hoạt động đối với một trong số chúng? – sepp2k
Tôi phải nói rằng tôi hoàn toàn không hiểu câu hỏi nào cả, cho đến khi luqui trả lời. Nếu bạn chỉ cần đọc [Báo cáo Haskell] (http://www.haskell.org/onlinereport/haskell2010/), điều đó rõ ràng là ý nghĩa của '(^ 2)' và '(2 ^)'. (Sau đó, một lần nữa, tôi đọc toàn bộ thông số ngôn ngữ trước khi sử dụng bất kỳ ngôn ngữ lập trình mới nào; tôi đã nói đó là một thói quen kỳ lạ…) – ephemient
Đó là một thói quen kỳ quặc nhưng tuyệt vời để giữ nó. – Davorak