getMultiWordPortion :: String -> String
getMultiWordPortion (x:':':xs) = xs
getMultiWordPortion _ = ""
Kết quả mong đợi từ kết hợp mẫu trong mã này là mọi thứ trước dấu đầu tiên được gán cho x và mọi thứ sau đó được gán cho xs, là kết quả. Nếu không có dấu hai chấm, không có gì được trả lại.Ghép mẫu Haskell trên dây - Tại sao tính năng này không hoạt động?
Điều gì thực sự xảy ra với chuỗi mẫu tôi đang sử dụng ("PING: gibson.freenode.net" - đó là một phần của ứng dụng khách IRC) là tôi nhận được giá trị trả lại trống.
Tôi đang làm gì sai ở đây?
Có lẽ, điều này sẽ giúp: http://stackoverflow.com/questions/1602243/pattern-matching-string-prefixes-in-haskell –
FWIW, Các ngôn ngữ logic (ví dụ: Prolog, Curry) là những ngôn ngữ có thể làm kiểu kết hợp này. Thật tuyệt khi có đầy đủ các mẫu có sẵn (không được coi là một lời chỉ trích của Haskell) – luqui