PasteRack.org
Paste # 74379
2020-04-27 04:11:48

Fork as a new paste.

Paste viewed 537 times.


Embed:

  1. #lang racket
  2.  
  3. (define (sum x)
  4. (if (null? x) 0
  5.     (+ (car x) (sum (cdr x)))))
  6.  
  7. (define (product x)
  8. (if (null? x) 0
  9.     (* (car x) (product (cdr x)))))
  10.  
  11. (define (main)
  12.   (begin
  13.  
  14.     (display "Enter number: ")
  15.     (define inp1 (read-line))
  16.     (define num (string->number (string-trim inp1)))
  17.  
  18.     (define lst (range 1 (+ num 1)))
  19.  
  20.     (display "sum or product: ")
  21.     (define inp2 (read-line))
  22.     (define str (string-trim inp2))
  23.  
  24.     (cond
  25.         [(equal? str "sum") (sum lst)]
  26.         [(equal? str "product") (product lst)])
  27.  
  28.     (main)
  29.  
  30. ))
  31.  
  32. (main)

=>

Enter number:

string-trim: contract violation

  expected: string?

  given: #<eof>