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