sequences.extras: adding pad-center.

char-rename
John Benediktsson 2016-08-03 11:25:06 -07:00
parent 7ee4e5dea5
commit d015f028db
2 changed files with 22 additions and 0 deletions

View File

@ -21,6 +21,21 @@ IN: sequences.extras.tests
{ "abc" " " } [ "abc" "" CHAR: \s pad-longest ] unit-test { "abc" " " } [ "abc" "" CHAR: \s pad-longest ] unit-test
{ "abc..." "foobar" } [ "abc" "foobar" CHAR: . pad-longest ] unit-test { "abc..." "foobar" } [ "abc" "foobar" CHAR: . pad-longest ] unit-test
{
{
"ABC"
"ABC"
"ABC"
"ABC"
"ABC-"
"-ABC-"
"-ABC--"
"--ABC--"
}
} [
"ABC" 8 iota [ CHAR: - pad-center ] with map
] unit-test
{ { 0 1 0 1 } } [ { { 0 1 0 1 } } [
{ 0 0 0 0 } { 1 3 } over [ 1 + ] change-nths { 0 0 0 0 } { 1 3 } over [ 1 + ] change-nths
] unit-test ] unit-test

View File

@ -82,6 +82,13 @@ IN: sequences.extras
: pad-longest ( seq1 seq2 elt -- seq1 seq2 ) : pad-longest ( seq1 seq2 elt -- seq1 seq2 )
[ 2dup max-length ] dip [ pad-tail ] 2curry bi@ ; [ 2dup max-length ] dip [ pad-tail ] 2curry bi@ ;
:: pad-center ( seq n elt -- padded )
n seq length [-] :> extra
extra 2/ :> left
extra left - :> right
left elt <repetition> seq right elt <repetition>
seq 3append-as ;
: change-nths ( ... indices seq quot: ( ... elt -- ... elt' ) -- ... ) : change-nths ( ... indices seq quot: ( ... elt -- ... elt' ) -- ... )
[ change-nth ] 2curry each ; inline [ change-nth ] 2curry each ; inline