Что хороший путь состоит в том, чтобы отладить код haskell?

Проблема в том, что вы всегда вращаетесь на 30 градусов, каждая итерация: ctx.rotate(30 * Math.PI / 180).

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

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

33
задан 23 March 2009 в 11:12
поделиться

4 ответа

Хороший способ отладить код Haskell состоит в том, чтобы записать и протестировать алгебраическое использование законов QuickCheck и SmallCheck. Было несколько отладчиков Haskell включая Шляпу, Капюшон и Freya, но ни одного из них, как не воспринимали, как достаточно ценный стоило поддержать в течение долгого времени.

Когда это - Haskell, необходимо думать по-другому о том, как сделать вещи. Бумага ICFP на странице QuickCheck имеет некоторые хорошие примеры для запущения Вас. Если Вы хотите реальный пример xmonad экстенсивно отлажен с помощью QuickCheck.

12
ответ дан 27 November 2019 в 19:31
поделиться

Как примечание стороны, знать это Debug.trace НЕ будет Ваш друг при отладке многопоточных программ.

Тестирование является способом пойти в длительный период.

5
ответ дан 27 November 2019 в 19:31
поделиться

Да, frontend для отладчика GHCi был бы хорошей вещью. Возможно, мы сделаем что-то во время следующего Хакатона. Однако тем временем:

С другой стороны, Haskell предоставляет себя приятно использованию восходящего тестирования QuickCheck. Т.е. протестируйте свои компоненты индивидуально, затем соедините их. Если Ваш код чист это часто Просто Работы.

8
ответ дан 27 November 2019 в 19:31
поделиться

В моих собственных целях я нахожу, что это - комбинация факторов.

  1. Запишите легкий отладить функциональный код, это означает удостоверяться, что Ваши функции являются относительно небольшими (5-20 строк) и что они только делают тот ясно определил вещь каждый.
  2. Используйте HUnit для определения тестовых сценариев, которые произведут проблемы.

Как замечено в других ответах, много людей любит QuickCheck. Я нашел, что это трудный определить значимые тестовые сценарии QuickCheck для по крайней мере части моего кода так обычно больше использует стандартные модульные тесты. Однако существует превосходное введение в использование QuickCheck в Главе 11 Реального мира Haskell.

Если Вы используете и QuickCheck и HUnit, можно хотеть изучить среду тестирования.

3
ответ дан 27 November 2019 в 19:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: