Как получить модуль в LISP - PullRequest
18 голосов
/ 18 апреля 2011

Я изучаю LISP прямо сейчас, и я не нашел ничего о том, как получить модуль в LISP.Есть ли способ получить его внутри функции?Я знаю, что другие языки, такие как Java, используют% для нахождения модуля, но что использует LISP?

Ответы [ 4 ]

24 голосов
/ 18 апреля 2011

Как насчет mod, со страницы :

(mod -1 5) => 4                                                              
(mod 13 4) => 1                                                              
(mod -13 4) => 3                                                             
(mod 13 -4) => -3                
10 голосов
/ 18 апреля 2011

В качестве альтернативы mod функция Common Lisp floor возвращает модуль по модулю в качестве второго значения. Это полезно в тех случаях, когда вас также интересует частное.

3 голосов
/ 22 ноября 2015

Существует две опции:

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

0 голосов
/ 31 марта 2015

В Лиспе для функции модуля используется команда rem -reminder Пример (rem 13 4) результат 1

...