История изменений
Исправление monk, (текущая версия) :
не зная досконально наизусть сигнатур всех участвующих идентификаторов и принципов их взаимодействия в хаскеле
Сигнатуры требуются не больше, чем в конструкции «ls | grep … | sort | uniq». «aaa >>= bbb >>= ccc» делает то же самое для операций, а «ccc . bbb . aaa» для чистых функций. Принципы взаимодействия операций в любом языке знать надо. Логирование втыкается в любую операцию:
readFile templateFile
>>= foldM (withLog $ processLine processTemplate) context . lines
>>= writeFile outFile . unlines . reverse . result
Логирование внутрь чистой функции в любом языке не вставишь, так что здесь никаких потерь нет. Для отладки есть trace.
Исправление monk, :
не зная досконально наизусть сигнатур всех участвующих идентификаторов и принципов их взаимодействия в хаскеле
Сигнатуры требуются не больше, чем в конструкции «ls | grep … | sort | uniq». «aaa >>= bbb >>= ccc» делает то же самое для операций, а «aaa . bbb . ccc» для чистых функций. Принципы взаимодействия операций в любом языке знать надо. Логирование втыкается в любую операцию:
readFile templateFile
>>= foldM (withLog $ processLine processTemplate) context . lines
>>= writeFile outFile . unlines . reverse . result
Логирование внутрь чистой функции в любом языке не вставишь, так что здесь никаких потерь нет. Для отладки есть trace.
Исходная версия monk, :
не зная досконально наизусть сигнатур всех участвующих идентификаторов и принципов их взаимодействия в хаскеле
Сигнатуры не требуются не больше, чем в конструкции «ls | grep … | sort | uniq». «aaa >>= bbb >>= ccc» делает то же самое для операций, а «aaa . bbb . ccc» для чистых функций. Принципы взаимодействия операций в любом языке знать надо. Логирование втыкается в любую операцию:
readFile templateFile
>>= foldM (withLog $ processLine processTemplate) context . lines
>>= writeFile outFile . unlines . reverse . result
Логирование внутрь чистой функции в любом языке не вставишь, так что здесь никаких потерь нет. Для отладки есть trace.