Подтвердить что ты не робот

Функция модуля/остатка для нецелых чисел

rem дает следующее:

Prelude> rem 9 8
1

Мне хотелось что-то вроде этого:

Prelude> nonIntRem 9.1 8
1.0999999999999996

Я реализовал его следующим образом:

nonIntRem x y = x - (y * (fromIntegral $ truncate (x/y)))

Мои вопросы:

  • Что-то вроде этого уже существует в стандартной библиотеке Haskell? Я бы предпочел использовать стандартную функцию, и я, возможно, пропустил ее.
  • Если нет, есть ли более стандартное имя для этой функции на других языках? Возможно, fmod, но поведение для негативов в этом случае не похоже на мод, но, как и rem. Если нет стандартного имени, можете ли вы придумать лучшее имя для этой функции?
  • Кажется, что он работает правильно, но если вы заметили проблему с этой функцией, я хотел бы узнать об этом.
4b9b3361

Ответ 1

Функция, за которой вы находитесь, mod' от Data.Fixed.