/
terms.pod
140 lines (91 loc) 路 3.17 KB
/
terms.pod
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
=begin pod
=TITLE Terms
Most syntactic constructs in Perl 6 can be categorized in I<terms> and
L<operators|/language/operators>.
Here you can find an overview of different kinds of terms.
=head1 Literals
=head2 Int
42
12_300_00
:16<DEAD_BEEF>
L<Int> literals consist of digits, and can contain underscores
between any two digits.
To specify a base other than ten, use the colonpair form C<< :radix<number> >>.
=head2 Rat
12.34
1_200.345_678
L<Rat> (rational numbers) literals contain two integer parts joined by a dot.
Note that trailing dots are not allowed, so you have to write C<1.0> instead
of C<1.> (this rule is important because there are infix operators starting
with a dot, for example the C<..> L<Range> operator).
=head2 Num
12.3e-32
3e8
L<Num> (floating point numbers) literals consist of L<Rat> or L<Int> literals
followed by an C<e> and a (possibly negative) exponent. C<3e8> constructs a
L<Num> with value C<3 * 10**8>.
=head2 Str
see the section on quoting constructs below.
=head2 Regex
see the section on quoting constructs below.
=head2 Pair
a => 1
'a' => 'b'
:identifier
:!identifier
:identifier<value>
:identifier<value1 value2>
:identifer($value)
:identifer['val1', 'val2']
:identifier{key1 => 'val1', key2 => 'value2'}
:$item
:@array
:%hash
:&callable
L<Pair> objects can be created either with C<< infix:芦=>禄 >> (which
auto-quotes the left-hand side if it is an identifier), or with the various
colonpair forms. Those always start with a colon, and then are followed either
by an identifier or the name of an already existing varible (whose name sans
the sigil is used as the key, and value of the variable is used as the value
of the pair).
In the identifier form a colonpair, the optional value can be any circumfix.
If it is left blank, the value is C<Bool::True>. The value of the
C<:!identifier> form is C<Bool::False>.
If used in an argument list, all of these forms count as named arguments, with
the exception of C<< 'quoted string' => $value >>.
=head2 Parcel
()
1, 2, 3
<a b c>
芦a b c禄
qw/a b c/
L<Parcel> literals are: the empty pair of parens C<()>, a comma-separated
list, or several quoting constructs
=head1 Quoting constructs
TODO
=head1 Identifier terms
There are built-in identifier terms in Perl 6, which are listed below.
In addition one can add new identifier terms with the syntax
sub term:<fourty-two> { 42 };
say fourty-two
or as constants
constant forty-two = 42;
say fourty-two
=head2 self
Inside a method, C<self> refers to the invocant (i.e. the object the method
was called on). If used in a context where it doesn't make sense, a
compile-time exception of type L<X::Syntax::NoSelf> is thrown.
=head2 now
Returns an L<Instant> object representing the current time.
=head2 rand
Returns a pseudo-random L<Num> in the range C<0..^1>.
=head2 pi
Returns the number C<pi>, i.e. the ratio between circumference and diameter of
a circle.
=head2 e
Returns Euler's number
=head2 i
Returns the imaginary unit (for L<Complex> numbers).
=head1 Variables
Variables are discussed in L<variable language docs |/language/variables>.
=end pod