Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Merge branch 'master' of https://github.com/perl6/doc
  • Loading branch information
gfldex committed Jul 22, 2016
2 parents 646039e + 657c0e0 commit e97a2fa
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 21 deletions.
42 changes: 21 additions & 21 deletions doc/Language/faq.pod6
Expand Up @@ -10,16 +10,16 @@
L<Rakudo|http://rakudo.org/> is an implementation of Perl 6. It's currently the most developed, but
there have been other implementations in the past and should be others in the
future. Perl 6 is the definition of the language. Many times the two names will
future. Perl 6 is the definition of the language. Many times the two names will
be used loosely and interchangeably.
=head2 Is there going to be a Perl 6 version 6.0.0?
=head2 Is there going to be a Perl 6 version 6.0.0?
The version of the first stable language version is called v6.c, not 6.0.0.
The different naming scheme makes it unlikely that there'll ever be a release
of the language with the exact version 6.0.0.
It was first implemented by the Rakudo Perl 6 compiler version 2015.12 and is
It was first implemented by the Rakudo Perl 6 compiler version 2015.12 and is
likely to be supported by subsequent releases for the foreseeable future by use
of the 'use 6.c' pragma..
Expand Down Expand Up @@ -259,7 +259,7 @@ If you want to do it anyway, you can abuse autothreading for that:
=head2 If Str is immutable, how does C<s///> work? if Int is immutable, how does C<$i++> work?
In Perl 6, values of many basic types are immutable, but the variables holding them are
In Perl 6, values of many basic types are immutable, but the variables holding them are
not. The C<s///> operator works on a variable, into which it puts a newly
created string object. Likewise C<$i++> works on the C<$i> variable, not
just on the value in it.
Expand Down Expand Up @@ -322,7 +322,7 @@ You likely tried to mix string interpolation and HTML.
my $foo = "abc";
say "$foo<html-tag>";
Perl 6 thinks C<$foo> to be a Hash and C«<html-tag>» to be a string literal
Perl 6 thinks C<$foo> to be a Hash and C«<html-tag>» to be a string literal
hash key. Use a closure to help it to understand you.
my $foo = "abc";
Expand Down Expand Up @@ -466,7 +466,7 @@ writers have trouble with.
One way to achieve context sensitivity in Perl 6 is to return an object
that knows how to respond to method calls that are typical for a context.
In Perl 6 this is actually a L<lot easier|/language/5to6-perlfunc#wantarray>
In Perl 6 this is actually a L<lot easier|/language/5to6-perlfunc#wantarray>
than it may sound, and other features of the language either mitigate the
need to do so in the first place, or make it possible to cover most of the
use cases of wantarray.
Expand All @@ -479,21 +479,21 @@ string|/type/Match>.
C<OpaquePointer> is deprecated and has been replaced with C<Pointer>.
=head1 Perl 6 Implementation
=head1 Perl 6 Implementation
=head2 What Perl 6 Implementations are available?
=head2 What Perl 6 Implementations are available?
Currently the best developed is Rakudo (using multiple Virtual Machine
backends). Historic implementations include Niecza (.NET) and Pugs (Haskell).
Others are listed at L<Perl 6 Compilers|https://www.perl6.org/compilers/>
Others are listed at L<Perl 6 Compilers|https://www.perl6.org/compilers/>
=head2 What language is Rakudo written in?
A short answer is that Rakudo is written almost entirely in Perl 6. A more
detailed answer is that Rakudo is written in a mixture of Perl 6 and NQP ("Not
Quite Perl"). NQP is a lightweight Perl 6-like environment for virtual
A short answer is that Rakudo is written almost entirely in Perl 6. A more
detailed answer is that Rakudo is written in a mixture of Perl 6 and NQP ("Not
Quite Perl"). NQP is a lightweight Perl 6-like environment for virtual
machines; it's designed to be a high-level way to create compilers and
libraries for virtual machines (such as MoarVM and JVM) using Perl 6 syntax.
libraries for virtual machines (such as MoarVM and JVM) using Perl 6 syntax.
=head2 What language is NQP written in?
Expand All @@ -510,7 +510,7 @@ decision. As they (both the language and the implementations) evolve, they
grow steadily more usable. Depending on your demands on a programming
language, Perl 6 and its compilers might or might not be ready for you.
That said, version 6c (Christmas 2015) is the first official release of Perl 6
That said, version 6c (Christmas 2015) is the first official release of Perl 6
as a language, along with a validation suite and a compiler that passes it.
=head2 Why should I learn Perl 6? What's so great about it?
Expand All @@ -519,7 +519,7 @@ Perl 6 unifies many great ideas that aren't usually found in other programming
languages. While several other languages offer some of these features, none of
them offer all.
=item Perl 6 offers procedural, object-oriented AND functional programming methodologies.
=item Perl 6 offers procedural, object-oriented AND functional programming methodologies.
=item Easy to use consistent syntax, using invariable sigils for data-structures.
Expand Down Expand Up @@ -553,9 +553,9 @@ them offer all.
=item Phasers (like BEGIN / END) allow code to be executed at scope entry / exit, loop first / last / next and many more special contexts.
=item High level concurrency model, both for implicit as well as explicit multi-processing, which goes way beyond primitive threads and locks. Perl 6's concurrency offers a rich set of (composable) tools.
=item High level concurrency model, both for implicit as well as explicit multi-processing, which goes way beyond primitive threads and locks. Perl 6's concurrency offers a rich set of (composable) tools.
=item Multiple-core computers are getting used more and more, and with Perl 6 these can be used thanks to parallelism, both implicit (e.g. with the >>. method) and explicit ( start { code } ). This is important, because Moore's Law is ending.
=item Multiple-core computers are getting used more and more, and with Perl 6 these can be used thanks to parallelism, both implicit (e.g. with the >>. method) and explicit ( start { code } ). This is important, because Moore's Law is ending.
=item Structured language support is provided to enable programming for asynchronous execution of code.
Expand All @@ -577,9 +577,9 @@ them offer all.
=item Simple numeric computation without precision loss because of Rats (rational numbers).
=item Extensible grammars for parsing data or code (which Perl 6 uses to parse itself).
=item Extensible grammars for parsing data or code (which Perl 6 uses to parse itself).
=item Perl 6 is a very mutable language (define your own functions, operators, traits and data-types, which modify the parser for you).
=item Perl 6 is a very mutable language (define your own functions, operators, traits and data-types, which modify the parser for you).
=item Large selection of data-types, plus the possibility to create your own types.
Expand Down Expand Up @@ -607,7 +607,7 @@ them offer all.
=item Lazy lists defined with a simple iterator interface, which any class can supply by minimally supplying a single method.
=item Perl 6's motto's remain the same as they have been for Perl all along: “Perl is different. In a nutshell, Perl is designed to make the easy jobs easy, without making the hard jobs impossible.” and “There Is More Than One Way To Do It”. Now with even more -Ofun added.
=item Perl 6's motto's remain the same as they have been for Perl all along: “Perl is different. In a nutshell, Perl is designed to make the easy jobs easy, without making the hard jobs impossible.” and “There Is More Than One Way To Do It”. Now with even more -Ofun added.
Please see the L<feature comparison
matrix|https://perl6.org/compilers/features> for an overview of implemented
Expand Down Expand Up @@ -662,7 +662,7 @@ Examples:
1;
# Another Perl 5 version that offers bare-bones set of features
# compared to Moose/Perl 6's version but those are not needed in this
# compared to Moose/Perl 6's version but those are not needed in this
# specific, simple program anyway.
package Foo;
use Mojo::Base -base;
Expand Down
4 changes: 4 additions & 0 deletions doc/Type/Bool.pod6
Expand Up @@ -19,6 +19,8 @@ Returns C<True>.
say True.succ; # True
say False.succ; # True
C<succ> is short for successor. In many languages, the C<succ> function is used to return the "next" enum, also known as the successor. Bool is a special enum with only two values, C<False> and C<True>. When sorted, C<False> comes first, so C<True> is its successor. And since C<True> is the "highest" Bool enum, its own successor is also C<True>.
=head2 routine pred
method pred() returns Bool:D
Expand All @@ -28,6 +30,8 @@ Returns C<False>.
say True.pred; # False
say False.pred; # False
C<pred> is short for predecessor. In many languages, the C<pred> function is used to return the "previous" enum, also known as the predecessor. Bool is a special enum with only two values, C<False> and C<True>. When sorted, C<False> comes first, so C<False> is the predecessor to C<True>. And since C<False> is the "loweset" Bool enum, its own predecessor is also C<False>.
=head2 routine enums
method enums() returns Hash:D
Expand Down

0 comments on commit e97a2fa

Please sign in to comment.