Có cách nào hay để tìm sự xuất hiện đầu tiên của một hàm tạo trong danh sách, mà không có đệ quy rõ ràng trong ví dụ dưới đây?Cách thành ngữ để lấy lần xuất hiện đầu tiên của một hàm tạo cụ thể từ danh sách
data Elem = A Int | B Char deriving Show
getA :: [Elem] -> Maybe Elem
getA [] = Nothing
getA (e:es) =
case e of
A a -> Just (A a)
_ -> getA es
Thật tuyệt vời, cảm ơn bạn! – martingw
Tôi thực sự thích cách giải pháp này sử dụng một danh sách hiểu để workaround có để phù hợp với mô hình trên nhiều hơn chỉ là các nhà xây dựng dữ liệu mong muốn. Nó có thể được cải thiện bằng cách sử dụng mẫu bản ghi trống được sử dụng bởi @hammar trong câu trả lời của anh ta. –
@ IonuțG.Stan đồng ý, điều đó sẽ chứng minh tương lai nó. –