• NeatNit@discuss.tchncs.de
            link
            fedilink
            arrow-up
            35
            arrow-down
            2
            ·
            edit-2
            1 day ago

            demo of semicolons being allowed in Python

            I am so perplexed and horrified. I’m going to need several weeks to get over this. What is this?!

              • NeatNit@discuss.tchncs.de
                link
                fedilink
                arrow-up
                11
                ·
                1 day ago

                It seems I had semicolons confused with braces:

                if picture is broken, it’s this:

                ~ $ python -c "from __future__ import braces"
                  File "<string>", line 1
                SyntaxError: not a chance
                
                • palordrolap@fedia.io
                  link
                  fedilink
                  arrow-up
                  8
                  ·
                  1 day ago

                  Guido undoubtedly had a strong, strong hatred of the number of ways braces are overloaded in Perl.

                  Do you really want an example?

                  sub doHref { { do { ${someglobal{Href}} = {} }; last }; }

                  Every single pairing there serves a different syntactic purpose. Some are related purposes, and I’ve crowbarred a few in unnecessarily for the sake of an example, but different nonetheless.

                  The outer pair declares the sub, and the next pair is a free block that works as a once-through unlabelled loop, which is exited with the last. (Most other languages use break for this purpose.)

                  The next pair are for the do which doesn’t act as a loop like the free block does. The next innermost pairing wrap a variable and the inner, innermost pairing indicate that the variable is a member of a hash (associative array) and we’re accessing the record named Href.

                  The lone {} indicates a hash reference, so we’re assigning a reference to an empty, anonymous hash to that hash record.

                  This example is ridiculous of course. There’s no need for most of those braces and syntax to do what it actually does. Also assigning to global variables is generally frowned upon.

                  sub doHref { $someglobal{Href} = {} }

                  … is equivalent and cuts out most of the guff. Still three different uses though.

      • wheezy@lemmy.ml
        link
        fedilink
        arrow-up
        9
        ·
        1 day ago

        Needs a 99% print too just before the 5 second sleep. Followed by a 99.9% and another 2 second sleep. Never print 100 and just run a traceroute in a loop.

        Followed by a “we’re in” from the hacker as we’re made to believe he’s reading the console spam like he’s Neo from the matrix as he types faster and faster into an unresponsive terminal window.