開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの機能制限無料版、light版)
- Script言語:Perl
『初めてのPerl 第6版』(Randal L. Schwartz, Tom Phoenix, brian d foy 共著、近藤 嘉雪 訳、オライリー・ジャパン、2012年、ISBN978-4-87311-567-2) の4章(サブルーチン)、4.12(練習問題)5を解いてみる。
その他参考書籍
5.
コード(TextWrangler)
sample.pl
#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use 5.016;
binmode STDIN, ':utf8';
binmode STDOUT, ':utf8';
sub greet{
state @last;
my $name = shift;
if(@last){
print "Hi $name! I've seen: @last\n";
} else {
print "Hi $name! You are the first one here!\n";
}
push @last, $name;
}
for(qw(Fred Barney Wilma Betty)){
greet($_);
}
入出力結果(Terminal)
$ ./sample.pl Hi Fred! You are the first one here! Hi Barney! I've seen: Fred Hi Wilma! I've seen: Fred Barney Hi Betty! I've seen: Fred Barney Wilma $
ちなみにJavaScriptの場合。
コード(TextWrangler)
var greet = (function(){
var last = [];
return function(name){
var result = "";
if(last){
result = "Hi " + name + "! I've seen: " + last.join(" ");
} else {
result = "Hi " + name + "! You are the first one here!";
}
last.push(name);
return result;
}
})();
var result = "";
var names = ["Fred", "Barney", "Wilma", "Betty"];
for(var i = 0 ; i < names.length; i++){
result += greet(names[i]) + "\n";
}
$('#pre0').text(result);
pythonの場合。
sample.py
コード(TextWrangler)
#!/usr/bin/env python3.3
#-*- coding:utf-8 -*-
class greet:
last = []
def __init__(self, name):
self.name = name
if greet.last:
print("Hi {0}! I've seen: {1}".format(name, " ".join(greet.last)))
else:
print("Hi {0}! You are the first one!".format(name))
greet.f(self)
def f(self):
greet.last.append(self.name)
for name in ["Fred", "Barney", "Wilma", "Betty"]:
greet(name)
入出力結果(Terminal)
$ ./sample.py Hi Fred! You are the first one! Hi Barney! I've seen: Fred Hi Wilma! I've seen: Fred Barney Hi Betty! I've seen: Fred Barney Wilma $
0 コメント:
コメントを投稿