=head1 Explanation of How Hangman Operates =head1 sub cls Returns nothing. Checks the magical lexical (S02) C<$?OS> against a junction consisting of 3 values. Use the ternary operator C to decide what system command to use to clear the screen. =head1 sub get_committer_list C is the low precedence form of C (S03). C is especially useful in its assignment form: $x //= $y; To summarize, C<||> and C relate to truth, while C and C relate to definedness. Next, we use smart matching, C<~~>, to skip all of the lines from the beginning of the file which have something other than whitespace. In the loop that follows: for (=$dict) -> $name { we use the unary C<=> to perform a C operation on the filehandle. =head1 sub draw_board We look over the numbers which are the indices to the elements of the array C<@letters> by forcing the array into numerical context: for (0 .. (+@letters - 1)) -> $i { Now, C<~=> might throw you. You Perl 5'ers are seeing the regexp matching operator in reverse. But what you should be seeing is the Perl 6 string concatenation operator (C<~>) followed by an equal sign. Which therefore means that $output ~= @letters[$i]; translates to: $output = $output ~ @letters[$i] ; =head1 sub has_won In the C here: @letters == @solution.grep:{ $_ ne '' }; the block beginning with a colon is called an I. It is equivalent with: grep(@solutions: { $_ ne '' }) In both cases, C<@solutions> is the invocant, and the block is the argument. =head1 sub guess The loop construction (S04) is used without the the statement modifiers C or which it can take. =head1 sub draw_if_greater_than sub draw_if_greater_than (Str $char, Int $num) returns Bool { ($number_of_bad_guesses >= $num) ?? $char !! ' '; } The character for blank should be a constant, e.g.: my constant $BLANK = ' '; but it is not implemented yet. =head1 sub draw_hangman Here we see function interpolation, i.e. the use of C<{ ... }> blocks inside strings. =head1 ## main loop Note that the list-context C in Perl 5 is now C in Perl 6: @solution = ('' xx +@letters); =head1 ERRATA If you read Apocalypse 03, you will see strong motivation for changing the ternary operator syntax. =head1 AUTHOR Terrence "metaperl" Brannon Substantial #perl6 help from mauke, ninereaons, revdiablo, autrijus, stevan