Perl, 45 bajtów
;print$_=<>,~~reverse;m;esrever~~,><=_$tnirp;
Całkiem proste, print
s input ( $_=<>
), po którym następuje reverse
. reverse
zwraca, $_
ponieważ używamy go w kontekście skalarnym przez prefiks z ~~
. Następnie dopasowujemy ( m//
używając ;
jako separatora), w pustym kontekście, do rewersu skryptu.
Jeśli możemy zagwarantować, nie będziemy musieli tworzyć palindromu esrever,><=_$tnirp
, możemy skrócić kod do 43 bajtów :
g.print$_=<>,reverse.m.esrever,><=_$tnirp.g
Stosowanie
echo -n 'neverod' | perl -e 'g.print$_=<>,reverse.m.esrever,><=_$tnirp.g'
neveroddoreven
Perl, 26 bajtów
Zawiera 25 bajtów kodu + 1 dla -p
.
$_.=reverse;m;esrever=._$
Nie sądzę, że jest to poprawne, ponieważ wymaga -p
flagi, której nie sądzę można łatwo połączyć z treścią skryptu, aby stworzyć prawdziwy palindrom. Prawie takie same wywołania jak powyżej, ale opiera się na tym, że -p
dodaje także ;
zakulisowe (w nowszych Perlach ...), aby zamknąć m//
.
Stosowanie
echo -n 'neverod' | perl -pe ';$_.=reverse;m;esrever=._$;'
neveroddoreven