開発環境
- macOS Sierra - Apple (OS)
- Emacs (Text Editor)
- Perl 6 (プログラミング言語)
- Rakudo(コンパイラ、実装)
Think Perl 6: How to Think Like a Computer Scientist (Laurent Rosenfeld(著)、Allen B. Downey(著)、Oreilly & Associates Inc)のPart 1(Starting with the basics)、Chapter 11(Case Study: Data Structure Selection)の Random Words、Exercise: 6.を取り組んでみる。
Exercise: 6.
コード(Emacs)
#!/usr/bin/env perl6 # -*- coding: utf-8 -*- my $skip = True; sub process-line (Str $line is copy) { # if defined index $line, "*END*THE SMALL PRINT!" { if defined index $line, "*** START OF THIS PROJECT GUTENBERG EBOOK EMMA ***" { $skip = False; return; } return if $skip; $line ~~ s:g/<[-'/]>/ /; $line ~~ s:g/<[;:,!?.()"_`”‘“’]>//; $line = $line.lc; return $line.words; } my $emma = bag (process-line $_ for 'emma.txt'.IO.lines); for 1..10 { say $emma.pick(10); } for $emma.pick(10) { say $_; } say 'KEYS'; for $emma.pick(10).keys { say $_; } say 'VALUES'; for $emma.pick(10).values { say $_; } say "KV1"; for $emma.pick(10).kv { say $_; } say "KV2"; for $emma.pick(10).kv -> $k, $v { say "$k => $v"; } say "PAIRS"; for $emma.pick(10).pairs { say $_; } say "BAG"; for $emma.pick(10) { say "$_\($emma{$_}\)"; }
入出力結果(Terminal, REPL)
$ ./sample6.pl (was emma without painful without going i clear when quite) (likewise it was not reanimation room should elton emma links) (love over the all that thought was proper to from) (aunt over of in was giving there the batess done) (never scouted her the or a grievous and spirits knows) (have impossible it long agreeable first sheep of barouche an) (be i her of a a with having is what) (yards proposal believed own that it we consideration us he) (know so conveniently seriousness out was as bates before speaking) (true nothing word highbury elegant her sucklings protected notice for) glad highbury good indeed 23rd hesitate by she have hardly KEYS 0 1 2 3 4 5 6 7 8 9 VALUES that or followed hopes of are what when to and KV1 0 to 1 will 2 an 3 thank 4 any 5 than 6 or 7 electronic 8 usual 9 of KV2 0 => beginning 1 => again 2 => i 3 => came 4 => will 5 => i 6 => lament 7 => for 8 => evening 9 => less PAIRS 0 => have 1 => my 2 => not 3 => an 4 => little 5 => and 6 => of 7 => being 8 => it 9 => punishment BAG was(2401) all(866) party(98) to(5321) a(3187) cautioned(1) yards(6) her(2483) civility(10) morrow(33) $
0 コメント:
コメントを投稿