Новичок в Haskell здесь.
У меня есть функция и набор свойств для ее проверки, которые я написал с помощью quickcheck. Свойства работают, когда я запускаю их по отдельности в интерпретаторе, и функция работает нормально.
Однако ручная быстрая проверка каждого свойства в интерпретаторе вручную (quickCheck prop_this, quickCheck prop_that) скучна, однообразна и отнимает много времени. Я хотел бы вставить все это в программу, и эта программа запускала бы все быстрые проверки. Вот где я застрял.
Базовый скелет программы выглядит следующим образом:
imports...
function_which_i_want_to_quickcheck
prop_1
prop_2
etc...
main = do
quickCheck prop_1
quickCheck prop_2
etc...
Я считаю, что все, что выше основного, в порядке, так как все компилируется и работает без него. Главное, с чем мне нужна помощь. Я пробовал несколько вариантов, т. е. не иметь do, использовать do, присваивать результаты с помощью «x ‹- quickCheck y», удалять quickCheck изнутри и вместо этого прикреплять его снаружи и т. д., но ничего не могу получить. Работа.
Кто-нибудь может помочь с вышеизложенным?
Если бы я хотел переместить все внутри main в другую (обычную, неосновную) функцию, как бы я это сделал?
РЕДАКТИРОВАТЬ: я ценю рекомендацию по тестированию фреймворков, но то, о чем я прошу здесь, тривиально сделать на любом другом языке и не нуждается в тестовом фреймворке. Почему не Хаскель?
Кроме того, это корректно работает прямо внутри интерпретатора. Я не могу заставить его работать внутри main. Есть идеи, почему?
quickCheck prop_1 >> quickCheck prop_2 >> quickCheck prop_3
Спасибо.
mapM_
. - person Sibi   schedule 02.03.2014