Скажем, у меня есть эта функция: (синтаксис Haskell)
f x = (x,x)
Какова работа (количество вычислений), выполняемая функцией?
Сначала я думал, что он явно постоянен, но что, если тип x
не является конечным, то есть x может принимать произвольный объем памяти? Можно было бы также учитывать работу, выполненную путем копирования x
, правильно?
Это заставило меня поверить, что работа, выполняемая функцией, фактически линейна по размеру ввода.
Это не домашнее задание для себя, но появилось, когда я должен был определить работу, выполняемую функцией:
f x = [x]
У меня такая же проблема.