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 5997203
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 23, 20262026-05-23T00:13:47+00:00 2026-05-23T00:13:47+00:00

I have read chapter 4 of SICP, and just found that the first section

  • 0

I have read chapter 4 of SICP, and just found that the first section lists the most important functions for implementing a evaluator, eval and apply, I understand that eval is very important, but why apply is so important? For some language, there is totally no apply such as in Javascript.

Edit: Sorry about that I am wrong about there is no apply in Javascript, please just ignore that.

  • 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-05-23T00:13:48+00:00Added an answer on May 23, 2026 at 12:13 am

    The eval/apply thing in SICP (and elsewhere) is separating two major parts of an evaluator. The first part, the one that eval is doing, is dealing with the syntactic translation of code to its meaning — but it’s doing almost nothing except dispatching over the expression type. As you can see in the book, there are various eval-foos for various “special forms”, since each of them has its own unique evaluation rule.

    Now, the most important form that the evaluator needs to deal with is function application. In fact, it’s so important that there is no keyword for this form (otherwise, you’d see apply or whatever littering scheme/lisp code). Instead, if a form begins with something that is not a known special form (and in real implementations, not a known macro) then the evaluator takes it to be a function application. At this point, to evaluate a function call, you need to evaluate the function itself (the first form) and all of its arguments, and then you need to apply the first value over the rest. A major enlightenment moment here is to realize that there is a major difference between this eval and apply — the former inherently deals with syntax, but the latter deals with values.

    As a side note, several people confused this with the built-in apply function that Scheme and Lisp implementation have. Why that function needs to be in the language is completely unrelated to the SICP point (roughly, it provides functionality that you cannot implement without it, it is a form of reflection from the implementation into the language). I don’t even think that the SICP evaluators even make apply available in the interpreted language. If you’re looking for more enlightenment, doing that (taking a SICP meta circular evaluator, and adding apply to the interpreted language) will be a nice exercise in reflection.

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

Sidebar

Related Questions

I have read in Chapter 4 of the NHibernate docs that all of a
I have read that you can do it, but would this really improve performance
I have read in a lot of places that assembly language is not usually
I have read that gwt-ext is slow and it seems too bulky. How does
I have to check for character sequences like \chapter{Introduction} from the strings read from
I'm working through a chapter about iPhone audio and have come across a section
I am new to these important features of C++, i have already read a
I believe most of you who are familiar with Python have read Dive Into
I have read Marcus Zarra's chapter on multithreading in his Core Data book and
I'm doing the first chapter exercises on my Java book and I have been

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.