開発環境
- 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 10(Hashes)の Exercise: 10-5.を取り組んでみる。
Exercise: 10-5.
コード(Emacs)
#!/usr/bin/env perl6 # -*- coding: utf-8 -*- say '5.'; my %cmudict; for 'cmudict-0.7b.txt'.IO.lines { my ($k, $v) = $_.split(' '); %cmudict{lc $k} = $v; } my %words = map {$_ => 1}, 'words.txt'.IO.lines; for %words.keys { my $cmu = %cmudict{$_}; if $cmu { my $word1 = $_.substr(1); if %words{$word1}:exists { my $cmu1 = %cmudict{$word1}; if $cmu1 and $cmu1 eq $cmu { my $word2 = $_.substr(0, 1) ~ $_.substr(2); if %words{$word2}:exists { my $cmu2 = %cmudict{$word2}; if $cmu2 and $cmu2 eq $cmu { say "$_, $word1, $word2"; } } } } } }
入出力結果(Terminal, REPL)
$ ./sample5.pl 5. aah, ah, ah llamas, lamas, lamas scent, cent, sent llama, lama, lama $
0 コメント:
コメントを投稿