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