Last active
September 1, 2017 06:25
-
-
Save toomasv/339cbe53fe99283bebe6a819f6840beb to your computer and use it in GitHub Desktop.
Rewrite of `reverse` to allow record-like reversing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
reverse: func [ | |
series /skip size /part length /local i tuple | |
][ | |
switch type?/word series [ | |
pair! [return to-pair reduce [series/2 series/1]] | |
tuple! [tuple: clear [] repeat i length? series [append tuple pick series i] series: copy tuple tuple: yes] | |
] | |
size: any [size 1] | |
either 0 = ((length? series) % size) [ | |
length: any [length length? series] | |
i: 1 | |
loop (length / size - 1) [ | |
i: i + size | |
series: at head series i | |
insert head series take/part series size | |
] | |
series: head series | |
][cause-error 'user 'message ["Wrong length of series or skip!"]] | |
either tuple [to-tuple series][series] | |
] |
Author
toomasv
commented
Aug 28, 2017
•
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment