Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7936799
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 3, 20262026-06-03T22:19:22+00:00 2026-06-03T22:19:22+00:00

I can see 2 ways of implementing let bindings. First, as known from SICP

  • 0

I can see 2 ways of implementing let bindings. First, as known from SICP, let may be implemented as lambda function. This is convenient and simple, but taking into account the fact that each lambda (fn) is translated into separate class in JVM and the number of times let is used in average program, this seems very, very expensive.

Second, let bindings may be translated directly into local Java variables. This gives very little overhead, but storing bindings on a stack breaks language semantics: in this case creation of closures is just impossible – saved values will be destroyed just after stack unwinding.

So what is actual implementation used in Clojure? Pointing to corresponding lines in Clojure source is appreciated.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-03T22:19:24+00:00Added an answer on June 3, 2026 at 10:19 pm

    let-bound variables are stored as final local values on the stack.

    Since they are final, they can be bound into closures if needed (this is analogous how you can use a final local variable in an anonymous inner class in Java). Under the hood, the JVM copies the value into the object that represents the closure (where it is stored as a final field). As a result, the closure still works even after the stack frame goes away.

    Overall, let-bound variables are extremely low overhead, you should have no hesitation at all from using them from a performance perspective. It probably isn’t possible to do any better on the JVM.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I can see there are many ways to use jQuery safely in the javascript
I can see some potential difficulties with this concept but the idea is: I
[Preamble: Whereas I realize there may be simpler ways to do this (i.e., just
I would like to see if anyone in the community can improve on this
I can see two ways to hook up the ViewModel to the View. One
I managed (as you can see in older posts from me) to insert a
Im planning to add language feature to my site. I can see two ways:
I can see it looks like an alias for an unsigned int pointer, right?
I can see where svn:keywords like Id, LastChangedDate and Author are used and replaced
I can see how to change the fonts and colors in the IDE. Is

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.