Answered step by step
Verified Expert Solution
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.
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 15Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started