2012年11月20日火曜日

開発環境

『初めてのPerl 第6版』(Randal L. Schwartz, Tom Phoenix, brian d foy 共著、近藤 嘉雪 訳、オライリー・ジャパン、2012年、ISBN978-4-87311-567-2) の3章(リストと配列)、3.11(練習問題)3を解いてみる。

その他参考書籍

3.

コード(TextWrangler)

sample.pl

#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use 5.016;
binmode STDIN, ':utf8';
binmode STDOUT, ':utf8';

print "文字列のリストを入力(1行に1個ずつ、空文字で終了)\n";
my @strings = ();
while(<>){
  chomp;
  last if $_ =~/\A\s*\Z/;
  push @strings, $_;
}
my @sorted = sort @strings;
print "リスト: @strings\n";
print "コードポイント順\n";
print "1行に出力: @sorted\n";
print "別々の行に出力\n";
print map{"$_\n"} @sorted;

入出力結果(Terminal)

$ ./sample.pl
文字列のリストを入力(1行に1個ずつ、空文字で終了)
fred
barney
wilma
betty

リスト: fred barney wilma betty
コードポイント順
1行に出力: barney betty fred wilma
別々の行に出力
barney
betty
fred
wilma
$

ちなみにJavaScriptの場合。

コード(TextWrangler)

var str;
var strings = [];
do{
  str = prompt("文字列を入力(空文字で終了)",null);
  strings.push(str)
}while (!(str === null || str === ""));
strings.pop();
var sorted_strings = strings.slice();
sorted_strings.sort();
var result = "文字列: " + strings.join(" ") + "\n" + 
  "コードポイント順に表示\n" + 
  "1行に出力: " + sorted_strings.join(" ") + "\n" +
  "別々の行に出力\n" + sorted_strings.join("\n");
$('#pre0').text(result);



pythonの場合。

sample.py

コード(TextWrangler)

#!/usr/bin/env python3.3
#-*- coding:utf-8 -*-

import re

strings = []
pattern = re.compile(r"^\s*$")
print("文字列を入力(1行に1個ずつ、空文字で終了)")
while True:
    str = input()
    if re.match(pattern, str): break
    strings.append(str)

sorted_strings = sorted(strings)
print("文字列のリスト: {0}".format(" ".join(strings)))
print("コードポイント順に表示")
print("1行に出力: " + " ".join(sorted_strings))
print("別々の行に出力\n" + "\n".join(sorted_strings))

入出力結果(Terminal)

$ ./sample.py
文字列を入力(1行に1個ずつ、空文字で終了)
fred
barney
wilma
betty

文字列のリスト: fred barney wilma betty
コードポイント順に表示
1行に出力: barney betty fred wilma
別々の行に出力
barney
betty
fred
wilma
$

0 コメント:

コメントを投稿