Tôi đang làm việc trên một số mã cho một trò chơi thẻ:Có phải viết các hàm trợ giúp cho trạng thái chuyển thành kiểu trạng thái trong Haskell không?
splitCards_ (x:xs) (a,b,c) | isGold x = splitCards xs (a:x,b,c)
| isAction x = splitCards xs (a,b:x,c)
| isVP x = splitCards xs (a,b,c:x)
splitCards_ [] (a,b,c) = (a,b,c)
splitCards xs = splitCards_ xs ([],[],[])
Về cơ bản, lấy một danh sách các thẻ, và tách nó thành ba danh sách khác nhau tùy thuộc vào loại thẻ. splitCards_
đại diện cho cập nhật trạng thái bằng cách đệ quy cập nhật thông số của nó, sau đó splitCards
(chức năng thực tế) được sử dụng để luôn bắt đầu tính toán với ba danh sách loại thẻ cụ thể trống.
Tôi tin rằng đây được gọi là trạng thái chuyển giao, và tôi khá chắc chắn đó là thành ngữ hoàn hảo, nhưng tôi quan tâm hơn đến thực tế là tôi phải xác định hàm trợ giúp splitCards_
để làm việc này theo cách tôi muốn. Tạo các hàm trợ giúp như Haskell thành ngữ này? Có một cách sạch hơn để viết này? Có quy ước đặt tên nào thích hợp hơn để chỉ đặt dấu gạch dưới vào cuối tên của hàm trợ giúp không?