Jump to content

Multisplit: Difference between revisions

Add Factor
m (Fix Perl 6 -> Raku in comments)
(Add Factor)
Line 512:
 
<code>System.StringSplitOptions.None</code> specifies that empty strings should be included in the result.
 
=={{header|Factor}}==
<lang factor>USING: arrays fry kernel make sequences ;
 
IN: rosetta-code.multisplit
 
: ?pair ( ? x -- {?,x}/f )
over [ 2array ] [ 2drop f ] if ;
 
: best-separator ( seq -- pos index )
dup [ first ] map infimum '[ first _ = ] filter first first2 ;
 
: first-subseq ( separators seq -- n separator )
dupd [ swap [ subseq-start ] dip ?pair ] curry map-index sift
[ drop f f ] [ best-separator rot nth ] if-empty ;
 
: multisplit ( string separators -- seq )
'[
[ _ over first-subseq dup ] [
length -rot cut-slice swap , swap tail-slice
] while 2drop ,
] { } make ;</lang>
 
{{out}}
<pre>> "a!===b=!=c" { "==" "!=" "=" } multisplit [ >string ] map .
 
{ "a" "" "b" "" "c" }</pre>
 
=={{header|FreeBASIC}}==
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.