Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

This should be solved using the Scheme coding language. 1. Given the next mathematical expression, write a recursive Scheme procedure to compute its first six

This should be solved using the Scheme coding language. image text in transcribedimage text in transcribed

1. Given the next mathematical expression, write a recursive Scheme procedure to compute its first six terms. I 1 if n=1 f(n-1) + f(n-1) + 2n +1 otherwise 2. Familiarize yourself with the following Scheme procedures: 1. (string-length "abc") produces 3 2. (string-length") produces 0 3. (substring "hello world" O 5) produces "hello" 4. (string=? "hello" "good bye") produces #f 5. (string-ci=? "hello" "HELLO") produces #t 6. (string-append "Hello" " Goodness") produces "Hello Goodness" (a) Define a recursive procedure my-str-len taking one string arguments. The procedure my-str-len computes the length of the string in s. You must use the following procedure, (define (my - substrs) (cond ((string=? S 161) 161) (else (substring s 1 (string-length s))))) (b) Define a recursive procedure substring? taking two arguments sstr and main-str that determines if sstr is a substring of main-str. Use only the string functions: string-length, substring and string=?. (c) Write a recursive procedure string-reverse that takes a single argument in-string. The procedure string-reverse takes its argument in-string and returns its reverse. For example, (string-reverse "dad n mom'') produces "mom n dad" The next helper function may be useful: (define (substr-ref strn) (substring str n (+ n 1))) Lambda expressions 3. Functions declared using define can be expressed as the lambda special form. That is, (define (fx) ) is the same as (define f (lambda (x) )) Lambda forms can be used to return anonymous functions. Anonymous functions have a number of important applications in Scheme. For example, here is a function apply-two-unary that returns an anonymous procedure bound to two unary procedures / and g. This anonymous function takes 2 as an argument. (define (apply-two- un ary f g) (lambda (x) (f (g :)))) (a) Write a procedure binary-plus returning a lambd a expression. The procedure binary-plus takes two arguments and adds them together. It should work like, (define plus 5 (binary-plus 5)) (plus57) produces 12. (b) Write a procedure to compute trinary-plus returning nested lambd a expressions. The procedure trinary-plus takes three arguments and adds them together, (define plus 5+4 ((trinary-plus 5) 4)) (plus5+4 6) produces 15

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Databases Organizing Information Digital And Information Literacy

Authors: Greg Roza

1st Edition

1448805929, 978-1448805921

Students also viewed these Databases questions