2014-02-01 2 views
1

Я новичок в clojure и возился в repl.Clojure quot и rem функции

Я заметил, что получаю ожидаемые результаты с функцией rem.

Так что без Clojure, если я 8/5 = 1,6

user=> (quot 8 5) 
1 

, как и ожидалось

user=> (rem 8 5) 
3 

Почему я получаю 3? Я вроде как ожидал 6. Я что-то пропустил?

ответ

2

Функция вы хотите за то, что вы себе бэр быть:

(defn frac [x y] (let [r (rem x y)] (double (/ r y)))) 

user> (frac 8 5) 
0.6 
2

rem дает остаток от деления indeger 8 на 5 (с 8 = 5 * 1 +)

Так что вы получаете правильно. Почему вы ожидали там 6?

+0

Уже поздно, и я ожидал, что мантисса вместо остатка. Я благодарю вас за это – mark

Смежные вопросы