Size: a a a

2020 December 25

AY

Andrei Yangabishev in Haskell Start
Спасибо, почитаю. Хотя понятнее не стало, что такое "is not defined" и кем оно не defined - не понятно. Я так понимаю конструкторы те же лямбды, раз он не упоминает их.
источник

к

кана in Haskell Start
нет, я думаю он просто опустил их, потому что там тред про лямбды был
источник
2020 December 26

AY

Andrei Yangabishev in Haskell Start
Есть какие-нибудь техники, модули для тестирования? Просто иногда напишу функцию, она не работает, но если императивщину можно по шагам отладить, то жирную хаскель-функцию фиг. Модуль для тестирования желательно для новичков. Еще вопрос кто как пишет функции? Я например сначала пишу функцию в реальных значениях, постепенно заменяя data value на код и на функции, тяжело с разгону в голове абстракции выстроить. Еще из забавного заметил что в ФП пытаюсь старыми императивными методами думать. Например, в императивщине же все переменные, поэтому в ФП постоянно клонит к аккумуляторам.
источник

А

Алексей ayaye :)... in Haskell Start
Andrei Yangabishev
Есть какие-нибудь техники, модули для тестирования? Просто иногда напишу функцию, она не работает, но если императивщину можно по шагам отладить, то жирную хаскель-функцию фиг. Модуль для тестирования желательно для новичков. Еще вопрос кто как пишет функции? Я например сначала пишу функцию в реальных значениях, постепенно заменяя data value на код и на функции, тяжело с разгону в голове абстракции выстроить. Еще из забавного заметил что в ФП пытаюсь старыми императивными методами думать. Например, в императивщине же все переменные, поэтому в ФП постоянно клонит к аккумуляторам.
QuickCheck?
источник

AY

Andrei Yangabishev in Haskell Start
Спасиба
источник

AP

Aleksei (astynax) Pi... in Haskell Start
HUnit, Hspec, tasty
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Отлаживать можно через Debug.Trace.trace
источник

AP

Aleksei (astynax) Pi... in Haskell Start
blabla (trace ("x=" ++ show x) x)
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Такие вот отладочные принты
источник

к

кана in Haskell Start
можно еще удобнее имхо, я так делаю

blabla x
->
blabla (traceShow ("x", x) x)
источник

IR

IC Rainbow in Haskell Start
Aleksei (astynax) Pirogov
HUnit, Hspec, tasty
+ hedgehog для пропертей

Но это всё надо уметь готовить
источник

JS

Jerzy Syrowiecki in Haskell Start
Andrei Yangabishev
Есть какие-нибудь техники, модули для тестирования? Просто иногда напишу функцию, она не работает, но если императивщину можно по шагам отладить, то жирную хаскель-функцию фиг. Модуль для тестирования желательно для новичков. Еще вопрос кто как пишет функции? Я например сначала пишу функцию в реальных значениях, постепенно заменяя data value на код и на функции, тяжело с разгону в голове абстракции выстроить. Еще из забавного заметил что в ФП пытаюсь старыми императивными методами думать. Например, в императивщине же все переменные, поэтому в ФП постоянно клонит к аккумуляторам.
разбить жирную функцию на логические части
источник

JS

Jerzy Syrowiecki in Haskell Start
Aleksei (astynax) Pirogov
blabla (trace ("x=" ++ show x) x)
дополню, что они в странном (для человека с императивным опытом) могут выводиться, надо не испугаться
источник

JS

Jerzy Syrowiecki in Haskell Start
для чистого кода есть аналог отладочных вотчей — перевычислять определённую функцию с конкретными аргументами при сохранении. есть в ghcid -a, наверно, в редакторах плагины есть для этого
источник

JS

Jerzy Syrowiecki in Haskell Start
кажется, этот вопрос пора уносить в FAQ
источник

JS

Jerzy Syrowiecki in Haskell Start
и/или в статью на ruhaskell.org
источник

AY

Andrei Yangabishev in Haskell Start
Не могу понять что тут происходит
let f x y = traceShow (x,y) (x + y) in f (1+2) 5
источник

к

кана in Haskell Start
вызывается функция f с аргументами (1 + 2) и 5, где
f - функция от двух аргументов, она возвращает сумму аргументов, выводит кортеж из аргументов в консоль (для дебага)
источник

AY

Andrei Yangabishev in Haskell Start
я в типах разобраться не могу. Я правильно понимаю что f определяется как let f = traceShow in f, т.е. f это функция, фактически синоним traceShow?
источник

JS

Jerzy Syrowiecki in Haskell Start
Andrei Yangabishev
я в типах разобраться не могу. Я правильно понимаю что f определяется как let f = traceShow in f, т.е. f это функция, фактически синоним traceShow?
нет, там же другие аргументы
источник