Как бы вы описали математику в комментариях? - PullRequest
5 голосов
/ 04 мая 2009

Ну, как говорится в вопросах ...

Уравнение может быть более значимым в математической форме, чем в коде. Возможность писать комментарии в математике может улучшить читаемость моих проектов.

В .NET, кстати.

Ответы [ 9 ]

12 голосов
/ 04 мая 2009

Я просто использую несколько строк, чтобы сделать это таким образом:

// Work out average as:  sum (values)
//                      --------------
//                      count (values)
//
// and distance between points as:
//           _______________________
//          /         2            2
//    d = \/ (x1 - x0)  + (y1 - y0)
//
// and the following function:
//
//             3     2   
//    f(x) = ax  + bx  + cx + d

Никакой магии для этого не требуется. Разве ты не любишь искусство ASCII?

7 голосов
/ 04 мая 2009

В ответ на ответ @ pax использовать ascii-art / plain text для отображения ваших уравнений (+1, кстати, pax):

Вот краткий список сочетаний клавиш для математических символов:

° (градус) - Alt + 0176

± (плюс / минус) - Alt + 0177

² (квадрат) - Alt + 0178

³ (в кубах) - Alt + 0179

¼ (1/4) - Alt + 0188

½ (1/2) - Alt + 0189

¾ (3/4) - Alt + 0190

6 голосов
/ 04 мая 2009

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

4 голосов
/ 04 мая 2009

Для простых комментариев я обычно прибегаю к синтаксису LaTeX или Word. Но обычно Слово, т.к. г. β более читабельно, чем \beta. Так как мои исходные файлы обычно Unicode, это не представляет проблемы. Также я не люблю слишком много скобок вокруг всего: -)

Иногда мне было скучно с Javadoc, и я использовал много HTML для получения формул в Javadoc, которые выглядят красиво, но это не помогает читаемости исходного кода (и использует тот факт, что Javadoc only строит в HTML, не повезло .NET здесь).

Я бы написал образец Пакса как

// Work out average as:
//   ∑(values)/|values|
// and distance between points as:
//   d = √( (x_1 - x_0)²  + (y_1 - y_0)² )
// and the following function:
//   f(x) = ax³  + bx²  + cx + d

Я редко использую подписки Unicode, так как они не в каждом шрифте, особенно не те, которые подходят для кода:)

3 голосов
/ 04 мая 2009

Это должен был быть комментарий к посту Мэтта, но моя репутация слишком низкая. Я сделал нечто подобное для LaTex. Это компонент сборки Sandcastle, который анализирует LaTeX, встроенный в комментарии XML, и создает изображения, которые добавляются обратно в документацию. Это простая оболочка вокруг mimeTeX. Вы можете увидеть альфа-код по адресу: http://github.com/cuda/latex-sandcastle/

3 голосов
/ 04 мая 2009

Знаете, это было бы отличное приложение для расширяемости Visual Studio, которое ScottGu продемонстрировал на последнем PDC (где он написал плагин MEF для отображения комментариев в другом стиле).

Вы можете написать свои математические комментарии, используя MathML , а затем запустить плагин, который анализирует разметку и отображает ее как правильное уравнение.

Это скорее комментарий, а не реальный ответ на ваш вопрос, но я решил опубликовать его, чтобы заставить людей задуматься. Может быть, кто-то сделает это однажды! :)

1 голос
/ 08 января 2010

Чтобы сделать рендеринг математических формул в ASCII немного проще, есть asciiTeX . asciiTeX принимает уравнения в стиле LaTeX и печатает их в ASCII-art.

1 голос
/ 04 мая 2009

Для меня самый простой способ понять сложную математическую задачу - это ввести некоторые действительные числа и выполнить их до конца. Чтение о том, как это работает, недостаточно, если я просто не напомню себе, что это делает.

Использование тестов Nunit было бы идеальным для предоставления практических примеров использования сложной математической задачи. Возможно, просто используйте комментарии, чтобы указать, что есть модульные тесты, через которые они могут пройти, и где их найти.

0 голосов
/ 04 мая 2009

Имейте в виду, что ваша аудитория. Комментарий должен быть значимым для вас через несколько месяцев и для ваших (настоящих и будущих) партнеров по команде прямо сейчас. Поэтому, если математическая запись совершенно понятна для всех вас, это может быть хорошо; тем не менее, поскольку я не могу знать, кто будет читать этот комментарий, я бы добавил текстовое представление или описание.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...