1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
slamgirl [31]
3 years ago
8

In Scheme, source code is data. Every non-atomic expression is written as a Scheme list, so we can write procedures that manipul

ate other programs just as we write procedures that manipulate lists.
Rewriting programs can be useful: we can write an interpreter that only handles a small core of the language, and then write a procedure that converts other special forms into the core language before a program is passed to the interpreter.
For example, the let special form is equivalent to a call expression that begins with a lambda expression. Both create a new frame extending the current environment and evaluate a body within that new environment. Feel free to revisit Problem 15 as a refresher on how the let form works.
(let ((a 1) (b 2)) (+ a b))
;; Is equivalent to:
((lambda (a b) (+ a b)) 1 2)
These expressions can be represented by the following diagrams:
Let Lambda
let lambda
Use this rule to implement a procedure called let-to-lambda that rewrites all let special forms into lambda expressions. If we quote a let expression and pass it into this procedure, an equivalent lambda expression should be returned: pass it into this procedure:
scm> (let-to-lambda '(let ((a 1) (b 2)) (+ a b)))
((lambda (a b) (+ a b)) 1 2)
scm> (let-to-lambda '(let ((a 1)) (let ((b a)) b)))
((lambda (a) ((lambda (b) b) a)) 1)
In order to handle all programs, let-to-lambda must be aware of Scheme syntax. Since Scheme expressions are recursively nested, let-to-lambda must also be recursive. In fact, the structure of let-to-lambda is somewhat similar to that of scheme_eval--but in Scheme! As a reminder, atoms include numbers, booleans, nil, and symbols. You do not need to consider code that contains quasiquotation for this problem.
(define (let-to-lambda expr)
(cond ((atom? expr) )
((quoted? expr) )
((lambda? expr) )
((define? expr) )
((let? expr) )
(else )))
CODE:
; Returns a function that checks if an expression is the special form FORM
(define (check-special form)
(lambda (expr) (equal? form (car expr))))
(define lambda? (check-special 'lambda))
(define define? (check-special 'define))
(define quoted? (check-special 'quote))
(define let? (check-special 'let))
;; Converts all let special forms in EXPR into equivalent forms using lambda
(define (let-to-lambda expr)
(cond ((atom? expr)
; BEGIN PROBLEM 19
'replace-this-line
; END PROBLEM 19
)
((quoted? expr)
; BEGIN PROBLEM 19
'replace-this-line
; END PROBLEM 19
)
((or (lambda? expr)
(define? expr))
(let ((form (car expr))
(params (cadr expr))
(body (cddr expr)))
; BEGIN PROBLEM 19
'replace-this-line
; END PROBLEM 19
))
((let? expr)
(let ((values (cadr expr))
(body (cddr expr)))
; BEGIN PROBLEM 19
'replace-this-line
; END PROBLEM 19
))
(else
; BEGIN PROBLEM 19
'replace-this-line
; END PROBLEM 19
)))
Computers and Technology
1 answer:
svet-max [94.6K]3 years ago
7 0
What are you saying at the bottom?
You might be interested in
Anyone have some good animes to watch, i finished haikyuu, BNHA, Kakegurui, and a whisker away -.-
kow [346]

Answer:

yeah u should watch the Knight of Zodiac

Explanation:

8 0
3 years ago
Read 2 more answers
Joe, a user, has just installed his first home wireless router. Which of the following tasks should be considered to help secure
MakcuM [25]

Answer:

Update the unit firmware.

Explanation:

Updating unit firmware means update the information related to the network that is newly installed on the wireless router. The purpose of this change is to update the devices with new network alterations to work with efficiency and better security. As things are updating on daily basis, so the manufacturer makes the devices, reprogram able to meet the requirement of the future by updating the program in firmware unit. By updating device means this will be to fix the bugs that can be occur in modern era. This will make the device more secure.

5 0
3 years ago
Write the definition of a function named count that reads all the strings remaining to be read in standard input and returns the
spayn [35]

Answer:

The function written in C++

int str(string word) {

int count = 1;

for(int i =0; i<word.length();i++) {

 if(word[i] == ' ') {

  count++;

 }

}

return count;

}

Explanation:

This line defines the function

int str(string word) {

This line initializes count to 1

int count = 1;

This line iterates through the input string

for(int i =0; i<word.length();i++) {

This line checks for blank space

 if(word[i] == ' ') {

Variable count is incremented to indicate a word count

  count++;

 }

}

return count;

}

<em>See attachment for full program</em>

Download cpp
8 0
3 years ago
Bulleted and Numbered List button appear in the ………….. Toolbar.​
stich3 [128]

Answer:

The answer to this question is given below in the explanation section

Explanation:

Bulleted and Numbered List button appear in the <u>Paragraph </u>Toolbar.​

On word processing software, these options display in paragraph toolbar in the Home ribbon.

for example, in MS Word, you can find them in the Home tab under paragraph groups of command.

however, it is noted that these options are appear in some other software under the formating toolbar.

8 0
4 years ago
Betty is developing a machine learning algorithm that looks at vast amount of data collected over 100 years and checks for relat
wolverine [178]

Answer:

The answer to this question is given below in the explanation section.

Explanation:

Betty is developing a machine learning algorithm that looks at a vast amount of data that is collected over 100 years, and She also wants to check the relationship among variables such as humidity, temperature, and rainfall in the given data.

So, the correct answer to this question is b. She is developing an association machine learning algorithm.

Because the association tells the relationship between variables. She used the association to find the relationship among variables such as humidity, temperature,  and rainfall.

While the other options are not correct because:

Regression is used to find out the cause and effect relationship between dependent and independent variables. Big data is the biggest field of data analysis, so this option does not best suit this context. Classification is used to classify data, or organizing data into their related group. While clustering is the task of dividing the population into a number of groups such that populations in the same groups are more similar to other populations in the same group than those in other groups. so these are all incorrect options to this question except the "b" option i.e association.

5 0
3 years ago
Other questions:
  • Which technology replaced the 64-bit front side bus and has 16 lanes for data packets?
    6·1 answer
  • Hello I'm new to coding and in my class, we have jumped straight into coding with zero experience and or lessons, this is my fir
    14·1 answer
  • What was the first e-commerce service
    13·1 answer
  • The Python print function
    9·1 answer
  • What is an example of CT SO?
    9·1 answer
  • Where is the BIOS stored?<br><br> CPU<br> CMOS<br> RAM<br> Northbridge
    13·2 answers
  • Java Eclipse homework. I need help coding this|
    10·1 answer
  • Another word for Arithmetic Logic Unit​
    6·1 answer
  • In which career field, would the computing technology industry Associates CompTIAA+ certification be useful?
    12·1 answer
  • A__ is a part of a GUI that allows a specific type of interaction with the user.
    14·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!