RosettaCodeData/Task/Fast-Fourier-transform/Perl-6/fast-fourier-transform-1.pl6
2017-09-25 22:28:19 +02:00

9 lines
233 B
Raku

sub fft {
return @_ if @_ == 1;
my @evn = fft( @_[0, 2 ... *] );
my @odd = fft( @_[1, 3 ... *] ) Z*
map &cis, (0, -tau / @_ ... *);
return flat @evn »+« @odd, @evn »-« @odd;
}
.say for fft <1 1 1 1 0 0 0 0>;