Цитата Сообщение от Владимир Ситников Посмотреть сообщение
Сейчас получается, что никакой источник привести не можете, и одновременно с этим настаиваете на своей правоте. Так не бывает.
Я не настаиваю на своей правоте. Я предполагаю, что моя идея разумна и лишь защищаю это предположение) Аксиоматические обоснования того, что это нечистая функция потому что это не называют чистой функцией меня не устраивают. Мне для того, чтобы убедить себя в обратном, нужны аргументы, почему плохая идея называть это чистой функцией.
Да, чистые функции проще тестировать, но эта простота и возникает только для тех функций, которые не зависят от истории прошлых запусков.
Функция "add :: Int -> Int -> Int" это чистая функция. Её протестировать несложно.
функцию add_list :: [Int] -> [Int] -> [Int] тестировать ничем не сложнее, чем нечто, имеющее тип Int -> Int -> Int, в котором поведение зависит от истории запусков.
Преимущество чистоты вовсе не в том, что сокращается пространство возможных состояний, а в том, что поведение чистой функции становится предсказуемым и не изменяется при использовании её в различных внешних условиях.
Так то чистые функции могут иметь принципиально ничем не ограниченное множество возможных состояний с сколь угодно сложной структурой.