Sha256: fb5678a48c4cc48fb723f0d6f774aa5e16fb0f54f3040b18709041f80a72f4f4

Contents?: true

Size: 355 Bytes

Versions: 105

Compression:

Stored size: 355 Bytes

Contents

unit module Luhn:ver<1>;

sub is-luhn-valid ($input is copy) is export {
  $input ~~ s:g/\s+//;
  return False if $input.chars < 2 || $input ~~ /\D/;
  my @num = $input.split('', :skip-empty);
  @num.unshift: 0 if @num % 2;
  my $sum;
  for @num -> $a, $b {
    $sum += $a * 2;
    $sum -= 9 if $a * 2 > 9;
    $sum += $b;
  }
  return ($sum %% 10).so;
}

Version data entries

105 entries across 105 versions & 1 rubygems

Version Path
trackler-2.2.1.61 tracks/perl6/exercises/luhn/Example.pm6
trackler-2.2.1.60 tracks/perl6/exercises/luhn/Example.pm6
trackler-2.2.1.59 tracks/perl6/exercises/luhn/Example.pm6
trackler-2.2.1.58 tracks/perl6/exercises/luhn/Example.pm6
trackler-2.2.1.57 tracks/perl6/exercises/luhn/Example.pm6
trackler-2.2.1.56 tracks/perl6/exercises/luhn/Example.pm6
trackler-2.2.1.55 tracks/perl6/exercises/luhn/Example.pm6
trackler-2.2.1.54 tracks/perl6/exercises/luhn/Example.pm6
trackler-2.2.1.53 tracks/perl6/exercises/luhn/Example.pm6
trackler-2.2.1.52 tracks/perl6/exercises/luhn/Example.pm6
trackler-2.2.1.51 tracks/perl6/exercises/luhn/Example.pm6
trackler-2.2.1.50 tracks/perl6/exercises/luhn/Example.pm6
trackler-2.2.1.49 tracks/perl6/exercises/luhn/Example.pm6
trackler-2.2.1.48 tracks/perl6/exercises/luhn/Example.pm6
trackler-2.2.1.47 tracks/perl6/exercises/luhn/Example.pm6
trackler-2.2.1.46 tracks/perl6/exercises/luhn/Example.pm6
trackler-2.2.1.45 tracks/perl6/exercises/luhn/Example.pm6
trackler-2.2.1.44 tracks/perl6/exercises/luhn/Example.pm6
trackler-2.2.1.43 tracks/perl6/exercises/luhn/Example.pm6
trackler-2.2.1.42 tracks/perl6/exercises/luhn/Example.pm6