diff --git a/scheme/base.sld b/scheme/base.sld index e4ef9f1e..94ba0e2a 100644 --- a/scheme/base.sld +++ b/scheme/base.sld @@ -1525,7 +1525,15 @@ "(void *data, int argc, closure _, object k, object n)" " Cyc_get_ratio(data, k, n, 0);") + ;; TODO: integrate into quotient? + (define-c fixnum? + "(void *data, int argc, closure _, object k, object obj)" + " return_closcall1(data, k, + obj_is_int(obj) ? boolean_t : boolean_f); ") + (define (quotient x y) + ;; TODO: if x and y are fixnums, do fast divide and return a fixnum + ;; TODO: above good enough or are there special cases?? (truncate (/ x y))) (define truncate-quotient quotient)