Sẽ rất khó khăn với các danh sách vì bạn sẽ cần phải thực hiện tất cả các cặp. Một cái gì đó như thế này in ra câu trả lời đúng bằng cách hình thành tất cả các cặp mà họ bằng nhau và sau đó đếm kích thước.
let xs = [1,2,3,4]
let ys = [1,2,3,4]
length [x | x <- xs, y <- ys, x == y]
Đó là khá khó khăn khi phải làm theo cách này từ một quan điểm thực hiện xem. Đối với các danh sách lớn, bạn nên sử dụng một bộ như bạn có thể kiểm tra thành viên nhanh hơn (thường là O (lg N), đôi khi O (1)) so với bạn có thể với một danh sách (O (N)).
Nguồn
2011-12-15 11:00:48
Nếu '2' trong danh sách thứ hai là một '4', điều đó sẽ làm cho 4 trận đấu? Và nếu '12' trong danh sách đầu tiên cũng là một' 4' khác, điều đó có tạo ra 6 trận đấu, 4 trận đấu, hay chỉ là 3 trận đấu? – dave4420
Xin lỗi tôi đã rõ ràng hơn, danh sách không chứa bất kỳ trùng lặp nào. Tôi đã có câu trả lời của tôi ngay bây giờ, cảm ơn. – Griffin