開発環境
- 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 コメント:
コメントを投稿