タグ

ブックマーク / fbis.hatenablog.com (2)

  • 正規表現でFizzBuzz - Unknown::Programming

    1,2,3,…,99,100 という文字列に対して正規表現でFizzBuzzに置換するような解法は.. 1,2,3,…,99,100 という文字列に対して正規表現でFizzBuzzに置換するような解法は出てないかなと思ったけど(出てたらごめんなさい><)、正規表現あんまり得意じゃないので私にはできません。 それはね、 use Perl6::Say; use Regexp::Assemble; my @list = (15,5,3); my %ra = map { $_ => Regexp::Assemble->new } @list; for my $i ( 1..100 ) { for( @list ) { ($i % $_) || $ra{$_}->add(qq/^$i\$/); } } my $re = sprintf "(?:%s)" ,join '|' , map { '('.$

    正規表現でFizzBuzz - Unknown::Programming
    miya2000
    miya2000 2008/10/12
    「$reに正規表現を作っておいて」つくれるんだ!
  • リストの要素数を取得する - Unknown::Programming

    配列ではなくてリストの要素数を取得するのにはどうすればよいか?というお話。 まず配列の場合はスカラコンテキストで評価するだけなんでとても楽。 my @data = qw/ a b c d /; my $count = @data; # 4 ではリストの場合はどうなるか? 配列と同じように書くなら my $count = qw/ a b c d /; こうなるが、これは大間違いである。 リストをスカラコンテキストで評価すると最後の要素が返ってくるのでこの場合$countには「d」が入る。 とするならば一度配列で受け取り、その後にスカラコンテキストで評価するのが一番スマートなのかもしれない。 my $count = my @tmp = qw/ a b c d /; # 4 しかしながら要素数を取得するだけなのに@tmpを広いスコープに置くのが嫌なのであればdoを使って囲ってしまうのが吉であろう

    リストの要素数を取得する - Unknown::Programming
    miya2000
    miya2000 2007/11/16
    頑固さを先読み
  • 1