Предположим, я хочу создать специальный случай для функции, которая соответствует строкам, начинающимся с символа «Z». Я мог бы легко сделать это с помощью сопоставления с образцом, делая что-то вроде следующего:Соответствующие строковые префиксы шаблонов в Haskell
myfunc ('Z' : restOfString) = -- do something special
myfunc s = -- do the default case here
Но что, если я хочу, чтобы соответствовать строки с более длинным префиксом? Скажем, я хочу иметь специальный случай для строк, которые начинаются со слова «тостер». Каков наилучший способ написать шаблон для соответствия такой строке?
Оффлайн выглядит довольно простым для написания и вызова шаблона Haskell для достижения желаемого эффекта. Впрочем, я недостаточно того, чтобы человек был уверен. – 2009-10-22 06:55:38
К сожалению, GHC не реализует сращивания шаблонов (насколько я знаю, по-видимому, это очень сложно), поэтому это невозможно. – ephemient