Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re^2: Perl 6 implementation of the following Perl 5 code

by Jenda (Abbot)
on May 27, 2013 at 12:27 UTC ( #1035401=note: print w/ replies, xml ) Need Help??


in reply to Re: Perl 6 implementation of the following Perl 5 code
in thread Perl 6 implementation of the following Perl 5 code

Waitasec?!? What's the backslash at the end of the lines in the first solution? Looks suspiciously like a line continuation character in the worst tradition of Visual Basic and Ruby?!?

Jenda
Enoch was right!
Enjoy the last years of Rome.


Comment on Re^2: Perl 6 implementation of the following Perl 5 code
Re^3: Perl 6 implementation of the following Perl 5 code
by duelafn (Priest) on May 27, 2013 at 14:03 UTC

    It is "unspace". Whitespace is not allowed before subscripts or ".". Apparently this is required to allow "if" conditions without parens and is part of the space is sometimes significant path that was taken. (See: Synopsis 3 and the linked Synopsis 2)

    Update: Below, moritz clarifies that "if" without parens was not the reason for forbidding whitespace around "." methods calls, merely another of the consequences.

    Good Day,
        Dean

      Way too late for the discussion, but one wonders if the removal of if condition parens is really worth the requirement to invent a concept such as "unspace".

      I mean really? "unspace"! If ever there was a 'seemed like a good idea at the time' that became 'a rod for our own backs' in the making; that's gotta be it.

      Especially, if most potential users are like me, and will always be using a mix of different languages at the same time.

      I'm pretty sure that if I ever make any regular use of P6, I will use parens around if conditions anyway. Simply because it is easier to not go through the pain of unlearning the habit (perhaps:'unparensing'?) for just one of the languages I (potentially) use every day.


      With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      "Science is about questioning the status quo. Questioning authority".
      In the absence of evidence, opinion is indistinguishable from prejudice.

        But even then, you have to be very careful, as it seems that

        if( $x==5 ) { ... }

        is not an if clause anymore but will look for a function called if. (And will generate an error here.)

        Well, continuing the use of parens does seem a good idea, but as an alternate, perhaps P6 could adopt an un-paren, denoted by
        a.)  )
        b.) /)   ... or
        c.) «   »

        If you didn't program your executable by toggling in binary, it wasn't really programming!

        Fwiw the removal of condition parens isn't related to unspace at all. Rather it's related to the fact that if you allow whitespace around the method call operator, you can't infix operators beginning with a dot (for example the range operator .. comes to mind).

        In Perl 5 this is less of an issue because the method call operator is longer, so not having any infix operators beginning with -> isn't a big loss.

        Finally Perl 6 allows you to write .method as a shorthand for $_.method, and if we allow a blank before the dot, it's hard to distinguish a method call on the previous term from a method call on $_.

        That said, such long chains of method calls tend to be rare in code I write, so the unspace really isn't such a big issue in practice.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (7)
As of 2014-07-23 22:15 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (153 votes), past polls