Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

328
Views
Is it possible to force Clojure into using primitive types instead of their boxed versions?

I have a following sample of code:

(type (apply / [5.0 0]))

It throws an unexpected error - "Division By Zero" (expected behavior: return Inf)

Probably, it happens due to auto-boxing - can it be prevented?

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Assuming you just want to use a two argument division on doubles, the following might work.

user=> (apply (fn d2div [n d] (double (/ (double n) (double d)))) [5.0 0.0])
##Inf

If you go down this path, check out clj-cmmons/primitive-math.

over 4 years ago · Santiago Trujillo Report

0

How about

user=> (defmacro myapply [func args] `(~func ~@args))
#'user/myapply
user=> (myapply / [5.0 0])
##Inf
user=> (type (myapply / [5.0 0]))
java.lang.Double

I didn't know that apply behaves in such a different manner in Clojure.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!