Middle three digits: Difference between revisions
Content deleted Content added
Added Racket version |
|||
Line 794: | Line 794: | ||
>>> </lang> |
>>> </lang> |
||
=={{header|Python}}== |
|||
<lang racket> |
|||
#lang racket |
|||
(define (middle x) |
|||
(cond |
|||
[(negative? x) (middle (- x))] |
|||
[(< x 100) "error: number too small"] |
|||
[else |
|||
(define s (number->string x)) |
|||
(define l (string-length s)) |
|||
(cond [(even? l) "error: number has even length"] |
|||
[else (define i (quotient l 2)) |
|||
(substring s (- i 1) (+ i 2))])])) |
|||
(map middle (list 123 12345 1234567 987654321 10001 -10001 -123 -100 100 -12345)) |
|||
(map middle (list 1 2 -1 -10 2002 -2002 0)) |
|||
</lang> |
|||
The output: |
|||
<lang racket> |
|||
'("123" "234" "345" "654" "000" "000" "123" "100" "100" "234") |
|||
'("error: number too small" "error: number too small" "error: number too small" "error: number too small" |
|||
"error: number has even length" "error: number has even length" "error: number too small") |
|||
</lang> |
|||
=={{header|REXX}}== |
=={{header|REXX}}== |
||
<lang rexx>/* REXX *************************************************************** |
<lang rexx>/* REXX *************************************************************** |