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