Middle three digits: Difference between revisions

Added Quackery.
(Updated to work with Nim 1.4: added missing parameter type. Removed import of module "math".)
(Added Quackery.)
Line 4,625:
-2002 -> (Even digit count)
0 -> (Less than 3 digits)</pre>
 
 
{{header|Quackery}}
 
<lang Quackery> [ 1 & not ] is even ( n --> b )
 
[ over size -
space swap of
swap join ] is justify ( $ n --> $ )
 
 
[ abs number$
dup size dup 3 < iff
[ 2drop $ "too few digits" ]
done
dup even iff
[ 2drop $ "even digit count" ]
done
dup 3 = iff
drop done
3 - 2 /
tuck split nip
swap negate split drop ] is middle3 ( n --> $ )
 
' [ 123 12345 1234567
987654321 10001 -10001
-123 -100 100 -12345 1
2 -1 -10 2002 -2002 0 ]
 
witheach
[ dup number$ 9 justify echo$
say " --> "
middle3 echo$ cr ]</lang>
 
{{out}}
 
<pre> 123 --> 123
12345 --> 234
1234567 --> 345
987654321 --> 654
10001 --> 000
-10001 --> 000
-123 --> 123
-100 --> 100
100 --> 100
-12345 --> 234
1 --> too few digits
2 --> too few digits
-1 --> too few digits
-10 --> too few digits
2002 --> even digit count
-2002 --> even digit count
0 --> too few digits</pre>
 
=={{header|Racket}}==
1,462

edits