Mam ten język L, który zawiera tylko jeden wpis: pisemnej bardziej zwięźle
Czy mogę skrócić to wyrażenie regularne za pomocą przecięcia?
Ten ciąg ma 2 (2^n-1) znaki i chcę, aby go zmniejszyć. Myślałem o użyciu przecięcia, jeśli mogę znaleźć kilka języków regularnych, w których przecięcie ich wyrażeń regularnych spowoduje ten ciąg.
Mam tu rekurencyjnej funkcji w przypadku, która pomogłaby:
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']));
i jakie jest twoje pytanie? –
Czy możesz pokazać nam gramatykę, która używa przecięcia do opisu Twojego języka? – Bergi
Zakładając, że możesz użyć operatora przecięcia w swoich wyrażeniach regularnych. Chcę skrócić to wyrażenie regularne, przecinając języki różnych sortów, używając tych n symboli do utworzenia ciągu znaków. –