Ho questo linguaggio L che contiene solo una stringa: scritto in modo più conciso posso abbreviare questa espressione regolare utilizzando l'intersezione?
Questa stringa ha 2 caratteri (2^n-1) e voglio ridurlo. Stavo pensando di usare l'intersezione, se riesco a trovare alcune lingue regolari in cui l'intersezione delle loro espressioni regolari produrrà questa stringa.
Ho qui la funzione ricorsiva nel caso che avrebbe aiutato:
function recursiveRegex(charset) {
if(charset.length == 0) {
return [];
} else {
var char = charset.splice(charset.length - 1, 1);
var returnVal = recursiveRegex(charset);
return returnVal.concat(returnVal) + char ;
}
}
console.log(recursiveRegex(['a1', 'a2', 'a3', 'a4']));
e qual è la tua domanda? –
Puoi mostrarci la grammatica che usa l'intersezione per descrivere la tua lingua? – Bergi
Supponendo che sia possibile utilizzare l'operatore di intersezione nelle espressioni regolari. Voglio abbreviare questa espressione regolare intersecando le lingue di diversi tipi usando quei simboli per produrre la stringa. –