開発環境
- 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(練習問題)2を解いてみる。
その他参考書籍
2.
コード(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! $last is also here!\n";
} else {
print "Hi $name! You are the first one here!\n";
}
$last = $name;
}
greet("Fred");
greet("Barney");
入出力結果(Terminal)
$ ./sample.pl Hi Fred! You are the first one here! Hi Barney! Fred is also here! $
ちなみにJavaScriptの場合。
コード(TextWrangler)
var greet = (function(){
var last;
return function(name){
var result = "";
if(last){
result = "Hi " + name + "! " + last + " is also here!";
} else {
result = "Hi " + name + "! You are the first one here!";
}
last = name;
return result;
}
})();
var result = greet("Fred") + "\n" + greet("Barney");
$('#pre0').text(result);
pythonの場合。
sample.py
コード(TextWrangler)
#!/usr/bin/env python3.3
#-*- coding:utf-8 -*-
class greet:
last = None
def __init__(self, name):
self.name = name
if greet.last:
print("Hi {0}! {1} is also here!".format(name, greet.last))
else:
print("Hi {0}! You are the first one!".format(name))
greet.f(self)
def f(self):
greet.last = self.name
greet('Fred')
greet('Barney')
入出力結果(Terminal)
$ ./sample.py Hi Fred! You are the first one! Hi Barney! Fred is also here! $
メモ: Pythonではやり方がすぐに思いつかなかったので、クラスを作っちゃうことに。。
0 コメント:
コメントを投稿