On Sat, Jun 10, 2017 at 9:38 AM, Brent Laabs <bsla...@gmail.com> wrote:
> I thought:
> $ is Scalar
> @ is Array
> % is Hash
> & is a function
>

Reading this https://docs.perl6.org/language/containers I just found
out that a @-variable can also contain a List,
not just an array:

> my @z = ()
[]
> @z.^name
Array
> my @z := ()
()
> @z.^name
List

    Gabor

>> my $x; say $x.VAR.WHAT;
> (Scalar)
>
> A dollar variable is a scalar.  The Scalar type is the the container for the
> dollar-variables, just like Array is the container for @array and Hash is
> the container for %hash.  Of course we also have this...
>> my &x; &x.VAR.WHAT
> (Scalar)
>
> It turns out functions are stored in Scalar containers as well.  In my view
> it's a form of syntactic sugar to be able to to use function names without a
> sigil in Perl 6.  A declared function is just an object; `sub foo {}` is
> saved in the current lexical scope as &foo.  These function calls are all
> equivalent:
>> my &x = sub { say "called" };
> sub () { #`(Sub|140204743370112) ... }
>> x()
> called
>> &x()
> called
>> my $y = &x; $y();
> called
>
> (Though multi subs would be much more complex to declare this way.)
>
>
> On Fri, Jun 9, 2017 at 9:51 PM, Gabor Szabo <szab...@gmail.com> wrote:
>>
>> Brad, thanks for your reply.
>> I accept your point on not calling $-variables "generic variables",
>> but then how do you call them?
>>
>> The same with the other 3. You described what they do in the same way
>> as the documentation does, but
>> when you casually speak about them, you know, with friends in bar :-),
>>  what do you call them then? e.g.:
>>
>> @a = 23, 14, 49;
>>
>> Do you say:
>> "I assign the list on the right hand side to a variable that does the
>> Positional role."    ?
>> or
>> "I assign the list on the right hand side to an array."     ?
>> or
>> "I assign the list on the right hand side to an at-variable."     ?
>> or
>> Something completely different.
>>
>> Gabor
>>
>>
>>
>> On Sat, Jun 10, 2017 at 7:21 AM, Brad Gilbert <b2gi...@gmail.com> wrote:
>> > @ does the Positional role
>> > % does Associative
>> > & does Callable
>> > $ causes its value to be an item (its values do not flatten into an
>> > outer list when you use `flat`)
>> >
>> >     my %hash is SetHash;
>> >
>> > Array does Positional, and all of its values are itemized
>> >
>> > We are unlikely to call $ variables "generic" because the word
>> > "generic" is too generic.
>> > For example Java has generics, and they are not variables.
>> > Why muddy the waters by using a word that has many different meanings
>> > in different programming languages?
>> >
>> > On Fri, Jun 9, 2017 at 1:21 AM, Richard Hainsworth
>> > <rnhainswo...@gmail.com> wrote:
>> >> It also seems to me that 'scalar' gives the wrong impression compared
>> >> to
>> >> arrays. A scalar in a vector is a component of a vector.
>> >>
>> >> I was thinking of "generic".
>> >>
>> >> Hence "$variable" is a generic variable because it can hold any type of
>> >> content.
>> >>
>> >>
>> >>
>> >> On Friday, June 09, 2017 02:10 PM, Gabor Szabo wrote:
>> >>>
>> >>> Looking at https://docs.perl6.org/language/variables there are 4
>> >>> variable types with sigil:  $, @, %, &.
>> >>> In Perl 5 I used to call them scalar, array, hash, and function
>> >>> respectively, even if the scalar variable had a reference to an array
>> >>> in it.
>> >>>
>> >>> How do you call them in Perl 6?
>> >>>
>> >>> As I understand @ always holds an array (@.^name is always Array or
>> >>> some Array[type]). Similarly % always holds a hash and & is always a
>> >>> function or a method.
>> >>> So calling them array, hash, and function sounds good.
>> >>>
>> >>> However I am not sure what to call the variables with a $ sigil?
>> >>> Should they be called "scalars"? Wouldn't that case confusion as there
>> >>> is also a container-type called Scalar.
>> >>>
>> >>> The word "scalar" appears twice in the document describing the
>> >>> variables: https://docs.perl6.org/language/variables and a total of
>> >>> 135 in the whole doc including the 5to6 documents and the document
>> >>> describing the Scalar type.
>> >>> The document describing the Scalar type:
>> >>> https://docs.perl6.org/type/Scalar the term "$-sigiled variable" is
>> >>> used which seems to be a bit long for general use.
>> >>>
>> >>> So I wonder how do *you* call them?
>> >>>
>> >>> Gabor
>
>

Reply via email to