@@ -273,7 +273,7 @@ export function multipleModifiers(
273273 modifiers : ReadonlyArray < TokiPona . Modifier > ,
274274) : IterableResult < MultipleModifierTranslation > {
275275 return IterableResult . combine ( ...modifiers . map ( modifier ) )
276- . flatMap ( combinationOnTwo )
276+ . flatMap ( IterableResult . combinationOnTwo )
277277 . filterMap ( ( [ forAdjectival , forAdverbial ] ) => {
278278 const adjectival = adjectivalModifier ( forAdjectival ) ;
279279 const adverbial = adverbialModifier ( forAdverbial ) ;
@@ -287,21 +287,3 @@ export function multipleModifiers(
287287 new ExhaustedError ( modifiers . map ( Composer . modifier ) . join ( " " ) )
288288 ) ;
289289}
290- // TODO: move this as IterableResult static method
291- export function combinationOnTwo < T > (
292- array : ReadonlyArray < T > ,
293- ) : IterableResult < readonly [ ReadonlyArray < T > , ReadonlyArray < T > ] > {
294- if ( array . length == 0 ) {
295- return IterableResult . single ( [ [ ] , [ ] ] ) ;
296- } else {
297- const init = array . slice ( 0 , array . length - 1 ) ;
298- const last = array [ array . length - 1 ] ;
299- return combinationOnTwo ( init )
300- . flatMap ( ( [ left , right ] ) =>
301- IterableResult . fromArray ( [
302- [ [ ...left , last ] , right ] ,
303- [ left , [ ...right , last ] ] ,
304- ] )
305- ) ;
306- }
307- }
0 commit comments