Tôi có một chương trình haskell liệt kê tất cả các số nguyên từ [1..n] dựa trên đầu vào n. Tôi muốn lọc các số nhất định dựa trên điều kiện từ số đó và hiển thị dưới dạng danh sách. ở đâu và làm thế nào tôi có thể sử dụng chức năng lọc/điều kiện?Làm cách nào để sử dụng chức năng lọc trong Haskell?
Theo tài liệu Haskell:
filter :: (a -> Bool) -> [a] -> [a]
lọc, áp dụng cho một vị và một danh sách, trả về danh sách những nhân tố này đáp ứng các vị ngữ; tức là,
filter p xs = [ x | x <- xs, p x]
cảm ơn! giải thích nó rất rõ ràng. tôi hiểu làm thế nào để lọc số chẵn và lẻ nhưng những gì về lọc những con số có thể chia n đầu vào? một cái gì đó như isDivisible n = lọc [1..n] div n? cú pháp cho điều đó là gì?: S – Amjad
Bạn sẽ phải thực hiện một chức năng dọc theo các dòng: 'isDivisible n p = n \' mod \ 'p == 0' và sử dụng làm vị từ của bạn. Lưu ý rằng hàm này trả về true nếu phần còn lại của phân chia n với p là 0 và sai khác. Hãy lưu ý rằng các đối số hiện đang theo thứ tự hơi khác so với thứ bạn muốn, vì vậy bạn có thể chỉ cần lật chúng trong định nghĩa ngay bây giờ hoặc sử dụng 'lật'. – Sarah
Nhận lỗi, không chắc chắn vị trí xác định vị từ này. tôi nghĩ rằng tôi không thể sử dụng nó trong cùng một dòng như bộ lọc phải không? Tôi muốn chương trình có được một đầu vào và liệt kê tất cả các ước của nó. tôi muốn biết làm thế nào vị ngữ được định nghĩa cho điều này. cảm ơn. – Amjad