Как получить модуль в LISP
Я изучаю LISP прямо сейчас, и я не нашел ничего о том, как получить модуль в LISP. Есть ли способ получить его внутри функции? Я знаю, что другие языки, такие как Java, используют%, чтобы найти модуль, но что использует LISP?
4 ответа
Как насчет mod
со страницы:
(mod -1 5) => 4
(mod 13 4) => 1
(mod -13 4) => 3
(mod 13 -4) => -3
В качестве альтернативы mod
Обыкновенный Лисп floor
Функция возвращает модуль по своему второму значению. Это полезно в тех случаях, когда вас также интересует частное.
Есть два варианта:
mod и rem являются обобщениями функций модуля и остатка соответственно.
mod выполняет операцию floor над числом и делителем и возвращает остаток от операции floor.
rem выполняет операцию усечения над числом и делителем и возвращает остаток от операции усечения.
mod и rem - функции модуля и остатка, когда число и делитель - целые числа.
Примеры:
> (rem -1 5) => -1
> (mod -1 5) => 4
> (mod 13 4) => 1
> (rem 13 4) => 1
Источник: http://clhs.lisp.se/Body/f_mod_r.htm
В Лиспе для функции модуля используется команда rem -reminder. Пример (rem 13 4) результат 1