Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

This question is to be solved in the coding language scheme. 2. Familiarize yourself with the following Scheme procedures 1. (string-length abc) produces 3 2.

This question is to be solved in the coding language scheme.

image text in transcribedimage text in transcribedimage text in transcribed

2. Familiarize yourself with the following Scheme procedures 1. (string-length "abc") produces 3 2. (string-length "") produces 0 3. (substring "hello world" 0 5) produces "hello" 4. (string=? "hello" "good bye") produces # 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-? 1111 111) (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 str n) (substring strn (+ n 1))) 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 e as an argument. (define (apply-two- un ar y f g) (1 ambda (x) (f (g x)))) (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 plus5 (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)) (plus 5+4 6) produces 15. 2. Familiarize yourself with the following Scheme procedures 1. (string-length "abc") produces 3 2. (string-length "") produces 0 3. (substring "hello world" 0 5) produces "hello" 4. (string=? "hello" "good bye") produces # 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-? 1111 111) (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 str n) (substring strn (+ n 1))) 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 e as an argument. (define (apply-two- un ar y f g) (1 ambda (x) (f (g x)))) (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 plus5 (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)) (plus 5+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_2

Step: 3

blur-text-image_3

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

Marketing Database Analytics

Authors: Andrew D. Banasiewicz

1st Edition

0415657881, 978-0415657884

More Books

Students also viewed these Databases questions

Question

=+ (b) Show that the reverse implication holds if 22 is countable.

Answered: 1 week ago

Question

explain the concept of strategy formulation

Answered: 1 week ago