Функция по модулю в чистоте
Есть ли предопределенный способ вычисления по модулю двух целых чисел в Clean?
StdOverloaded определяет класс типов (mod), но StdInt не содержит его экземпляра, а StdEnv - нигде больше. Я видел обзор языка о чистой версии 2.0, в котором упоминается экземпляр мода StdInt, но в 2.4 он определенно отсутствует.
1 ответ
Решение
StdInt предлагает другую альтернативу: она называется rem. Работает так же, как старомодная функция мода, но также отлично работает со знаковыми целыми числами.
10 rem 7 // 3
10 rem -7 // 3
-10 rem 7 // -3
-10 rem -7 //-3
В последней стабильной версии (Clean 3.0) можно использовать rem, просто импортировав экземпляр StdEnv.