Hatena::Groupfizzbuzz

mattnの日記

 | 

2010-04-05perlのような、pythonのような

perlかも。でもpython。

16:29

use strict;
use warnings;
use Win32::OLE;
my $perl = Win32::OLE->new('ScriptControl');
$perl->{Language} = 'Python';
my $res = $perl->Eval('[("Fizz"*(i%3<1)+"Buzz"*(i%5<1))or i for i in range(1,101)]');
print "$_\n" for @{$res};

分かった。JavaScriptだ。

16:56

use strict;
use warnings;
use Win32::OLE;
my $perl = Win32::OLE->new('ScriptControl');
$perl->{Language} = 'Python';
$perl->AddCode(<<EOM);
import win32com.client
def fizzbuzz():
  sc = win32com.client.Dispatch("ScriptControl")
  sc.Language = "JScript"
  return [a for a in sc.Eval("(function(func, list) { var clone = []; for (var i = 0; i < list.length; i++) { clone[i] = func(list[i]); } return clone; })(function(x) { if (x % 15 === 0) { x = 'FizzBuzz'; } else if (x % 5 === 0) { x = 'Buzz'; } else if (x % 3 === 0) { x = 'Fizz'; } return x; }, (function(max, start) { var list = []; for (var i = start; i <= max; i++) { list.push(i); } return list; })(100, 1));")]
EOM
;
my $res = $perl->Eval('fizzbuzz()');
print "$_\n" for @{$res};

ここまでやればあとは id:hasegawayosuke さんか id:TAKESAKO さんあたりが記号だけで書いてくれるはず。

ゲスト



トラックバック - http://fizzbuzz.g.hatena.ne.jp/mattn/20100405
 |