rmuir opened a new issue, #14202:
URL: https://github.com/apache/lucene/issues/14202
### Description
These automata operations have two forms today, using concatenate() as an
example:
```java
/**
* Returns an automaton that accepts the concatenation of the languages of
the given automata.
*
* <p>Complexity: linear in total number of states.
*/
public static Automaton concatenate(Automaton a1, Automaton a2) {
return concatenate(Arrays.asList(a1, a2));
}
/**
* Returns an automaton that accepts the concatenation of the languages of
the given automata.
*
* <p>Complexity: linear in total number of states.
*/
public static Automaton concatenate(List<Automaton> l) {
...
```
I think these helpers are trappy, in that it makes it too easy to use
Automaton like a StringBuilder:
```java
while (someloop) {
automaton = Operations.concatenate(automaton, other);
}
```
But if you do it this way, it does not run in linear time.
So I'd propose to just deprecate the `concatenate(a1, a2)` in favor of
`concatenate(List.of(a1, a2))` and the same thing with the `union()` if you
really just want to concatenate/union two things, it isn't causing you too much
additional pain. If you want to concatenate/union 3 or more things, it
encourages that you do it in the performant way.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]