note
JadeNB
<p>When you replied, my [806121|first thought]—and rightly so, I think—was “Oh no, I've under-specified the problem [787348|again]”, and I'm sorry for that.</p>
<p>However, I'd like now to offer a less panicked reply. You are certainly correct that I can do what I want with a loop, but we know that recursion can do whatever iteration can; and, in a sense, I'm trying to make that abstract understanding concrete in this particular sense. Sure, I could just say
<code>
sub f;
sub f {
$_[0] =~ s/^(a{1,3})(?=b)/$1a/ ?
goto &f
:
return $_[0];
}
</code>
to get something that only a functional programmer could love; but I'm wondering if I can make the regex perform (or ‘simulate’, of whatever) the recursion for me, without explicit function calls.
<p>‘Regular’ regexes don't have this power, but Perl regexes are, of course, not regular; and so I could have phrased my question vaguely as: is there any way for back-references and other assorted Perl tricks to let us get around this limitations of ‘regular’ regexes?</p>
<p>In order to avoid under-specifying again, let me give the <em>real</em> question that I am trying to answer, because of [802914|moritz]'s post: Are Perl regexes Turing complete <em>without</em> <c>(?{})</c> and <c>(??{})</c>? If not, can I get by with some minimal amount of embedded code (like <c>(?{pos = 0})</c>, as [806123|you] suggested)?</p>
<p><small>This started off as a reply to the parent, but, while I was (slowly) composing it, you posted [806244|another node]. This is my response to that node, too. :-)</small></p>
806115
806119