Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

Re^3: If you believe in Lists in Scalar Context, Clap your Hands

by tinita (Parson)
on Oct 24, 2008 at 12:20 UTC ( [id://719330]=note: print w/replies, xml ) Need Help??


in reply to Re^2: If you believe in Lists in Scalar Context, Clap your Hands
in thread If you believe in Lists in Scalar Context, Clap your Hands

No, it returns the value of the last expression, evaluated in the context the function was called in.
I know that, you know that, most of the others know that. Where's the problem?For me, a list(!) of scalars with the comma operator in between is a list. In english. To say that my example sub returns a list (I could even say here *every* sub returns a list) isn't saying anything wrong. If there is no list at all in perl, then it's clear I mean the english wort list. In my example I could also say three scalars.

The point I want to make is whenever someone explains a piece of code with "list in scalar context" then you can be sure somebody who has too much time will correct them. But they didn't have the time to explain the piece of code in the first place. When you're talking about code, do you always use that long definition with the comma operator? If there is no list in perl, do you really *never* use this word when talking about code? Come on. I want to know what's wrong with using that word when explaining others the behavior of a piece of code. Didn't you get my point about code vs. execution?

edit: or maybe your suggestion is, never use the word list, but use comma operator. I'm not sure if it's the right thing to always say "sub x returns the comma operator" when a) a list is a word that everybody understands and b) a list is used as a synonym for comma operator, so it doesn't say anything wrong. Couldn't we just say that? I never see where the explanation "list in scalar context" is saying anything that is not true.

  • Comment on Re^3: If you believe in Lists in Scalar Context, Clap your Hands

Replies are listed 'Best First'.
Re^4: If you believe in Lists in Scalar Context, Clap your Hands
by JavaFan (Canon) on Oct 24, 2008 at 13:22 UTC
    In my example I could also say three scalars.
    But three scalars aren't returned when the sub is in scalar context. A single scalar is returned. Just as if you had
    return $a + $b + $c;
    again, in English, a list of three scalars separated by plus signs. But the sub doesn't return three scalars, it just returns one.
    If there is no list in perl, do you really *never* use this word when talking about code?
    I also said lists is mostly a concept for humans to work with. I said that when responding to a question regarding the difference between arrays and lists. Does that answer your question? Or do you need proof I actually communicate with humans?

    I've no problem with using the concept of lists. The problem is, not everyone is clear on what a list is. Some in this thread have shown a difficulty in grasping the difference between an array and a list. Others think lists can exist in scalar context. You prefer using "list" in a grammatical sense. So, sometimes, it's better to not use "list" as it only leads to confusion.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://719330]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others browsing the Monastery: (2)
As of 2024-04-25 20:45 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found