Ask Question, Ask an Expert


Ask Programming Language Expert

 (1) Sort a list of distinct numbers in ascending order, using the following divideand- conquer strategy (Quicksort): divide the list of numbers into two lists: one that contains all items that are strictly smaller than the first item (often called the pivot), and another with all those items that are strictly larger than the first item. Then the two smaller lists are sorted using the same procedure. Once the two lists are sorted, the pieces are juxtaposed. For ex, given (11 8 14 7) the pivot is 11. We make two lists, (8 7) and (14). The second is already sorted; sorting the first - pivot is 8 - yields (7 8). Putting the three pieces together: (7 8) 11 (14) ==> (7 8 11 14).

(2) prepare a procedure (make-stack) that produces independent stack objects, using a message-passing style, e.g.

(define stack1 (make-stack))
(define stack2 (make-stack))

prepare procedures to manipulate stacks, e.g.

(stack1 'empty?) ==> boolean
(stack1 'push! item) ==> pushes item on top of stack
(stack1 'top) ==> returns top element of stack,
leaves stack unchanged
(stack1 'pop!) ==> throws away top element of stack
(stack1 'print) ==> prints some representation of the stack from top to bottom, enclosed in brackets etc….

Your tests should include making several stacks, pushing on one what is popped from the other, attempts to pop from an empty stack etc.

Also prepare a procedure to reverse a list by using two stacks.

(3) Implement your own streams.

(a) prepare (delay ) as a special form for (lambda () ) and (force ).

(b) prepare (stream-cons x y) as a special form, as discussed in class.

(c) prepare stream analogues of some familiar list processing functions, including: (stream-car str)

(stream-cdr str)
(stream-null? str)
(stream-ref str n) --- returns the nth
element in stream str
(stream-filter pred str) --- makes a new stream of
elements satisfying pred
(stream-for-each proc str) --- applies proc to each
element of str for side effect
(first n str) --- makes a stream of the
first n items in str
(list->stream lis) --- makes a stream from
list lis
(stream->list str) --- opposite coercion

For ex, if you have defined a stream of even integers called evens, you can display the first 50 even integers as follows:
(stream-for-each (lambda (x) (display x)(display "
")) (first 50 evens)).

Test your functions convincingly!

(d) Now define a bunch of streams to test your functions:

(i) an infinite stream of 1's

(ii) an infinite stream of all even integers

(iii) an infinite stream of random numbers between 1 and 100

(iv) prepare a predicate (prime? n) that tests for primality and use it to create a stream of all primes

(4) (i) Add the special form let to the metacircular interpreter (see ch4- mceval.scm from SICP and the version on the course website).

Hint: remember let is just syntactic sugar for a lambda expression and so a reprepare to the lambda form is all that is required.

(ii) What changes are needed in the metacircular interpreter so that Scheme uses dynamic instead of lexical scoping?


As always, test thoroughly and present your test results clearly. Do not forget to demonstrate that your changes to the metacircular interpreter work in all cases!

Your assignment should include a README.TXT file that contains details of the testing you have performed and any special requirements that have for setup. All Scheme files should have the extension .rkt. All text files should have the extension .txt.

Programming Language, Programming

  • Category:- Programming Language
  • Reference No.:- M91109
  • Price:- $65

Priced at Now at $65, Verified Solution

  • AsyU replied

    Good work, good quality solution provided by you guys which help me alot, seriously i recommend to my all mates and once again thank you so much for delivering good and authentic solution...

Have any Question? 

Related Questions in Programming Language

Question 1a class is like a blueprint which you use to

Question 1 A class is like a blueprint which you use to create objects. An object is an instance of a class. It's a thing that you made out of a speci?c class. Basically, object and instance mean the same, but the word i ...

Project final projectyour final project will be to analyze

Project: Final Project Your final project will be to analyze, design, and document a simple program that utilizes a good design process and incorporates sequential, selection and repetitive programming statements(i.e loo ...

Assignmentcollege maintains a file of credit hours

Assignment College maintains a file of credit hours completed for their students, named CREDITS.TXT. Each line of the file contains: • the student's ID number (an 8-character string, containing 2 letters followed by 6 di ...

Write a program which1 asks the user to enter a letter

Write a program which: 1. Asks the user to enter a letter grade (A, B, C, D, F) or (a, b, c, d, f) 2. Validates that the entry is a letter grade (A, B, C, D, F) or (a, b, c, d, f) 3. The program then asks the user to ent ...

Test 1you are permitted the use of pre-written notes

Test 1 You are permitted the use of pre-written notes, previous labs and the textbook. You are NOT permitted the help of the Lab TA or the Internet. Any cheating will result in a report Academic Integrity Violation and a ...

Most languages are case sensitive so keywords can be

Most languages are case sensitive, so keywords can be written only one way, and the regular expressions describing their lexemes are very simple. However, some languages, like SQL, are case insensitive, so a keyword can ...

Assignmentinstructionsthe first programming project

Assignment Instructions The first programming project involves writing a program that computes the salaries for a collection of employees of different types. This program consists of four classes. The first class is the ...

Now consider the outer loop of given figure consisting of

Now consider the outer loop of given figure, consisting of blocks B2, B3, B4, and B5. Let g be the transfer function for the loop body, from the entry of the loop at B2 to its exit at B5. Let i measure the number of iter ...

Assignmentstatementfirst design an interface

Assignment Statement First, design an interface InteractiveGame that generalizes the playing of any two-person game between a human player and the computer. Design two actual games, Nim and another game of your choice, e ...

Assignmenta finance company provides loans for motorcycles

Assignment A finance company provides loans for motorcycles at different rates depending on how much the total loan amount is and how many payments will be made on the loan. Using the information in the table below, writ ...

  • 4,153,160 Questions Asked
  • 13,132 Experts
  • 2,558,936 Questions Answered

Ask Experts for help!!

Looking for Assignment Help?

Start excelling in your Courses, Get help with Assignment

Write us your full requirement for evaluation and you will receive response within 20 minutes turnaround time.

Ask Now Help with Problems, Get a Best Answer

WalMart Identification of theory and critical discussion

Drawing on the prescribed text and/or relevant academic literature, produce a paper which discusses the nature of group

Section onea in an atwood machine suppose two objects of

SECTION ONE (a) In an Atwood Machine, suppose two objects of unequal mass are hung vertically over a frictionless

Part 1you work in hr for a company that operates a factory

Part 1: You work in HR for a company that operates a factory manufacturing fiberglass. There are several hundred empl

Details on advanced accounting paperthis paper is intended

DETAILS ON ADVANCED ACCOUNTING PAPER This paper is intended for students to apply the theoretical knowledge around ac

Create a provider database and related reports and queries

Create a provider database and related reports and queries to capture contact information for potential PC component pro