USING: math arrays sequences kernel splitting strings ; IN: strings.lib : char>digit ( c -- i ) 48 - ; : string>digits ( s -- seq ) [ char>digit ] { } map-as ; : >Upper ( str -- str ) dup empty? [ unclip ch>upper 1string swap append ] unless ; : >Upper-dashes ( str -- str ) "-" split [ >Upper ] map "-" join ;