Range extraction: Difference between revisions

Fixed Forth version
(→‎{{header|Forth}}: Marked incorrect as 11-12 should be 11,12 as there are only two values in the range.; (and spaces are added).)
(Fixed Forth version)
Line 740:
 
=={{header|Forth}}==
{{incorrect|Forth|11-12 should be 11,12 as there are only two values in the range.; (and spaces are added).}}
<lang forth>create values
here
Line 750 ⟶ 749:
 
: clip 1- swap cell+ swap ; \ reduce array
: .range 2dup = if drop 0 .r elserange2 0 .r ." -" 0 .r then ; \ difference two or more
: .range1 0 .r ." , " 0 .r ; \ difference one
: .range0 drop 0 .r ; \ no difference
\ select printing routine
create .range ' .range0 , ' .range1 , ' .range2 ,
does> >r over over - 2 min cells r> + @ execute ;
 
: .ranges ( a n --)
over @ dup >r >r \ setup first value
Line 764 ⟶ 769:
 
Output:
<pre>0-2, 4, 6-8, 11-, 12, 14-25, 27-33, 35-39</pre>
 
=={{header|Go}}==
Anonymous user