Заглавные буквы для именованных шаблонов - PullRequest
7 голосов
/ 05 ноября 2011

In Mathematica Встроенные символы начинаются с заглавных букв. Поэтому принято не начинать имена созданных пользователем символов с заглавных букв.

Насколько должно распространяться это ограничение на другие аспекты синтаксиса? Требует ли надлежащая практика, чтобы заглавная буква не использовалась для именованного шаблона в выражении SetDelayed или RuleDelayed (где такие имена локализованы)?

Я думаю, что заглавные буквы полезны для расширения пространства имен и визуально различают строчные буквы L и 1, например. Они также позволяют именовать аргументы в стиле учебника.

Если в будущих версиях будут введены новые символы, именованные шаблоны должны заменить их, а существующий код не должен нарушаться.

Кон - это двусмысленность, если используются существующие имена, такие как N и D, но я чувствую, что и контекст использования, и подсветка синтаксиса FrontEnd смягчают это.

1 Ответ

2 голосов
/ 05 ноября 2011

Это общепринятая практика, которую я не принимаю!

Я имею в виду пакеты для личного или стороннего использования. В общем, я хочу, чтобы моя законченная работа была как можно более неотличимой от идеального (WRI) качества, внешнего вида и ощущений. Это включает в себя длинные описательные имена для моих команд со всеми соглашениями об использовании заглавных букв, используемыми WRI.

Конечно, мои пакеты - на данный момент - далеко не соответствуют качеству WRI, но, по крайней мере, я пытаюсь интегрировать их как можно лучше со стандартной функциональностью MMA. И это включает в себя прописные команды.

Во время разработки подсветка синтаксиса предупреждает меня о возможных конфликтах со стандартными функциями MMA, поэтому я могу предпринять соответствующие действия. Конечно, мои команды и пакеты могут конфликтовать с будущими выпусками MMA, но ничто не длится вечно, и если будущая команда MMA будет похожа по имени и функциональности на одну из моих, я просто переключусь на стандартную функцию с минимальным изменением имен или без изменений .

Кроме того, я считаю, что визуально гораздо привлекательнее использовать заглавные буквы, чтобы отличать команды пакета от более скромных временных переменных. Если вы хотите увидеть какой-то визуально непрозрачный / непривлекательный код, просто посмотрите на любой средний код Maple.

Что касается переменных шаблона, я стараюсь давать значимые, в основном короткие, имена шаблонов без прописных букв, чтобы пользователь мог угадать, посмотрев на шаблон Ctrl / Cmd-K, какой тип ввода ожидается в моих командах пакета.

...