; File: alphabet2.scm ; Author: Stephen Pilalas ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Welcome to the Alphabet Program ; Please choose an option: ; 1) Uppercase letters ; 2) Lowercase letters ; 1 ; Enter number (1-26) of letter you want. ; Enter 27 to get all ; 27 ; A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ; Continue(y/n)?= y ; Welcome to the Alphabet Program ; Please choose an option: ; 1) Uppercase letters ; 2) Lowercase letters ; 2 ; Enter number (1-26) of letter you want. ; Enter 27 to get all ; 20 ; t ; Continue(y/n)?= n ; Goodbye! ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (define start (lambda () (let ((x 0)) (display "Welcome to the Alphabet Program\n") (display "Please choose an option:\n") (display "1) Uppercase letters\n") (display "2) Lowercase letters\n") (set! x (read)) (cond((= x 1)(ucletter)) ((= x 2)(lcletter))) (if (yesorno) (start) (bye)) ))) (define yesorno (lambda() (display "\nContinue(y/n)?= ") (equal? (read) 'y) )) (define bye (lambda() (display "\nGoodbye!\n") )) (define capital (λ() (do ((i 65(+ i 1))) ((> i 90)) (display(integer->char i)) (display " ") ))) (define lowercase (λ() (do ((i 97(+ i 1))) ((> i 122)) (display(integer->char i)) (display " ") ))) (define lcletter (λ() (let ((a 0)) (display "Enter number (1-26) of letter you want.\n") (display "Enter 27 to get all\n") (set! a (read)) (cond ((> a 27)(display "Number is too big")) ((< a 1)(display "Number is too small")) ((= a 27)(lowercase)) (else(display(integer->char (+ a 96))))) ))) (define ucletter (λ() (let ((a 0)) (display "Enter number (1-26) of letter you want.\n") (display "Enter 27 to get all\n") (set! a (read)) (cond ((> a 27)(display "Number is too big")) ((< a 1)(display "Number is too small")) ((= a 27)(capital)) (else(display(integer->char (+ a 64))))) )))