Как вариант (почти на правах бреда) можно использовать юникодные символы из расширенного набора.
Например, во почти во всех шрифтах есть сиволы: ‹› они очень похоже на знаки < > но все же имеют отличное начертание:
Method‹int›(Method‹string, int›) // \u2039 \u2040
Method<int>(Method<string, int>) // знаки больше и меньше
в выражении:
when (Method‹int›(Method‹string, int›) > 0)
...
Файлы у нас и так в utf-8 хранятся так что проблем быть не должно. Ну, а для ввода прийдется биндить их на некоторые сочетания кнопок. Например, на Ctrl+< и Ctrl+>.
Минусы:
1. Нельзя записать исходный файл в ASCI или национальную кодировку (последнее компилятор немерле и так не поддерживает).
2. Визуально знаки отличимы не очень сильн, так что те кто не любит С++-ного решения будет опять же недовольны.
Еще варианты:
«» - ковычки "отечественные" (больше годятся для строк)
₍₎ - скобки сабскриптные (мелковато)
◄ ► (стрелки из псевдографики)
˂˃ - еще одни стрелки похожие на больше/меньше \u02C2 \u02C3 (в)
<> - знаки больше и меньше исползуемые в С++.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Например, во почти во всех шрифтах есть сиволы: ‹› они очень похоже на знаки < > но все же имеют отличное начертание: VD>[c#] VD>Method‹int›(Method‹string, int›) // \u2039 \u2040 VD>Method<int>(Method<string, int>) // знаки больше и меньше
Нуна У меня в блокнотике такую ерунду даже вставить нетривиально будет.
Может все же типа такого:
Type!<d,d,d>
Это хоть и похоже на нынешнюю точку, то выглядит имхо вполне ничего. К тому же ! в этих целях уже вроде как примелькался.
Есть ещё кошерные символы: U+2329 и U+232A. Я сейчас попробую их изобразить. Если в шрифте вашего браузера нет глифов для этих символов, то увидите квадратики:
1) В обычном тексте (глифы заведомо есть в шрифте Arial Unicode MS, например):
when (Method〈int〉(Method〈string, int〉) > 0)
2) В коде (моноширинные шрифты, как правило, более бедны):
when (Method〈int〉(Method〈string, int〉) > 0)
Именно такие скобки я бы предпочёл для шаблонов или туплов.
Здравствуйте, Qbit86, Вы писали:
Q>Есть ещё кошерные символы: U+2329 и U+232A. Я сейчас попробую их изобразить. Если в шрифте вашего браузера нет глифов для этих символов, то увидите квадратики: Q>1) В обычном тексте (глифы заведомо есть в шрифте Arial Unicode MS, например): Q>when (Method〈int〉(Method〈string, int〉) > 0) Q>2) В коде (моноширинные шрифты, как правило, более бедны): Q>
when (Method〈int〉(Method〈string, int〉) > 0)
Q>Именно такие скобки я бы предпочёл для шаблонов или туплов.
Эти точно не пойдут. В шрифте Consolas их нет. В результате они занимают более двух позиций (т.е. не моноширинные). В Courier New тоже, но в нем (в студии) они отбражаются как съеженные кракозабры.
ЗЫ
Но тут важен именно сам вопрос. Можно ли применять расширенные юникод-символы? Потому как, если пойти на это, то символы уже можно подобрать.
Основные минусы:
1. Невозмоность набора в примитивных редакторах (типа нотпэда).
2. Наличие не во всех шрифтах (но можно подобрать такие что будут в подавляющем большинстве).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Я хоть и использую греческие буквы для названия переменных, но это даже для меня слишком радикально.
VD> 1. Нельзя записать исходный файл в ASCI или национальную кодировку (последнее компилятор немерле и так не поддерживает).
Это, к тому же, может затруднить цитирование кода в чатах и на сайтах не поддерживающих юникод.
VD>Как вариант (почти на правах бреда) можно использовать юникодные символы из расширенного набора.
Однозначно не стоит использовать символы подобные стандартным или похожие на них. Люди которые увидят Nemerle впервые — будут уверены что правильно вводят скобки и при этом программа у них будет некомпилируемой. Разьянять на каждом углу что скобки особенные — времени не напасёшься. Да и учти что многим даже в голову не придёт что у них скобки "неправильные", скорее то что язык "неправильный".
Здравствуйте, VladD2, Вы писали:
VD>Как вариант (почти на правах бреда) можно использовать юникодные символы из расширенного набора.
VD>Например, во почти во всех шрифтах есть сиволы: ‹› они очень похоже на знаки < > но все же имеют отличное начертание: VD>
VD>Method‹int›(Method‹string, int›) // \u2039 \u2040
VD>Method<int>(Method<string, int>) // знаки больше и меньше
VD>в выражении:
VD>when (Method‹int›(Method‹string, int›) > 0)
VD> ...
VD>
VD>Файлы у нас и так в utf-8 хранятся так что проблем быть не должно. Ну, а для ввода прийдется биндить их на некоторые сочетания кнопок. Например, на Ctrl+< и Ctrl+>.
VD>Минусы: VD>1. Нельзя записать исходный файл в ASCI или национальную кодировку (последнее компилятор немерле и так не поддерживает). VD>2. Визуально знаки отличимы не очень сильн, так что те кто не любит С++-ного решения будет опять же недовольны.
VD>Еще варианты: VD>
VD>«» - ковычки "отечественные" (больше годятся для строк)
VD>₍₎ - скобки сабскриптные (мелковато)
VD>◄ ► (стрелки из псевдографики)
VD>˂˃ - еще одни стрелки похожие на больше/меньше \u02C2 \u02C3 (в)
VD><> - знаки больше и меньше исползуемые в С++.
VD>
Э.... Ну уж лучше тогда @() или @[] ....Как я это набирать буду :? Збиндить разве что на шифт с колёсиком:?
Здравствуйте, VladD2, Вы писали:
VD>Как вариант (почти на правах бреда) можно использовать юникодные символы из расширенного набора.
VD>Например, во почти во всех шрифтах есть сиволы: ‹› они очень похоже на знаки < > но все же имеют отличное начертание:
Я был бы не против использования расширенных символов, НО только для каких либо очень специфических, очень редко используемых задач (чтобы отсутствие биндинга не замедляло написание программы)