символьные конструкторы (на подобии : у списков), но где можно прочитать какие ограничения накладываются на строку, которой я задаю оператор/констрктор?
Например, может ли быть оператор xyz? Может ли быть конструктор ^:^?
Немного выйду за рамки вопроса конструкторов и операторов. Какие вообще символы допустимы для имен функций и какие есть ограничения (например, в си/си++ нельзя начинать имена с цифры)?
Про это можно почитать здесь: https://www.haskell.org/onlinereport/haskell2010/haskellch2.html Если коротко, то операторами могут быть любые последовательности символов, где к символам относятся такие знаки: !#$%&*+./<=>?@\^|-~: Также сюда входят любые знаки пунктуации из Юникода, но без (),;[]`{}'_" При этом с : будут начинаться операторы-конструкторы, а с других символов обычные операторы.
Чтобы использовать обычные функции как операторы (например, так часто поступают с elem), их надо заключить в пару кавычек `
Кстати, сами имена начинаются с буквы (заглавной для конструкторов; _ считается за строчную букву), а после них могут идти буквы, цифры, подчёркивания и одинарные кавычки.
Обсуждают сегодня