21 lines
870 B
Text
21 lines
870 B
Text
REBOL [
|
|
Title: "Increment Numerical String"
|
|
URL: http://rosettacode.org/wiki/Increment_numerical_string
|
|
]
|
|
|
|
; Note the use of unusual characters in function name. Also note that
|
|
; because REBOL collects terms from right to left, I convert the
|
|
; string argument (s) to integer first, then add that result to one.
|
|
|
|
s++: func [s][to-string 1 + to-integer s]
|
|
|
|
; Examples. Because the 'print' word actually evaluates the block
|
|
; (it's effectively a 'reduce' that gets printed space separated),
|
|
; it's possible for me to assign the test string to 'x' and have it
|
|
; printed as a side effect. At the end, 'x' is available to submit to
|
|
; the 's++' function. I 'mold' the return value of s++ to make it
|
|
; obvious that it's still a string.
|
|
|
|
print [x: "-99" "plus one equals" mold s++ x]
|
|
print [x: "42" "plus one equals" mold s++ x]
|
|
print [x: "12345" "plus one equals" mold s++ x]
|