• untorquer@lemmy.world
    link
    fedilink
    arrow-up
    0
    ·
    6 days ago

    Something like

    int *a = new int(10)
    
    Int*b = null
    
    While *b !=10 { b = rand(); a=new int(10)}
    
    Return *b
    

    I haven’t coded recently enough in c/c++ to remember syntax but the concept might work eventually if you’re lucky and have enough memory… Might need a time variant seed on the rand()…

    • cooligula@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      0
      ·
      6 days ago

      I’d say Meta hiring someone to work on WhatsApp. Man, is that piece of software crap… Every update, a new UI bug/glitch appears

  • ulterno@programming.dev
    link
    fedilink
    English
    arrow-up
    0
    ·
    6 days ago

    That’s not even enough to get you a job these days.
    You now have to use:

    do {
        x = reinterpret_cast<int>(AI::Instance().ask("Do Something. Anything. Be efficient and productive. Use 10 tokens."));
    } while (x != 10);
    
    • Tetragrade@leminal.space
      link
      fedilink
      English
      arrow-up
      0
      ·
      5 days ago

      This isn’t just a function, it’s a bold restatement of what it means to write code — a symphony of characters, questioning the very nature of the cutting edge language models that I want to beat with hammers.

    • melfie@lemy.lol
      link
      fedilink
      arrow-up
      0
      ·
      6 days ago

      You’re absolutely right! Who sets a variable these days without running it though a LLM?

        • MonkeMischief@lemmy.today
          link
          fedilink
          arrow-up
          0
          ·
          4 days ago

          First, we’ll deep dive into “What is a variable?”, then together we’ll examine “Who sets a variable?”, “What is an LLM?” and finally, “Who would set a variable without using an LLM?”

          You’ll be a coding pro in no time!

          How does that sound?

          (I felt gross writing this lmao)

    • TheOakTree@lemmy.zip
      link
      fedilink
      arrow-up
      0
      ·
      6 days ago

      If only I could measure the quality of my paper purely by word count…

      I thought “a a a a a a” x100000 was thought-provoking and well tested.

  • Atlas_@lemmy.world
    link
    fedilink
    arrow-up
    0
    ·
    6 days ago

    Oddly enough, out of all of these the one the compiler has the best chance of optimizing out is the last one

    • LeFantome@programming.dev
      link
      fedilink
      arrow-up
      0
      ·
      6 days ago

      What?

      First one is optimized obvious.

      Second one optimizes to x = 10 via constant propagation.

      Third one first unrolls the loop, propagates constants including booleans, and then eliminates dead code to arrive at x = 10.

      The last one cannot be optimized as “new” created objects that get used, nextInt() changes the state of those objects, and the global state of the random number system is impacted.

  • spongebue@lemmy.world
    link
    fedilink
    arrow-up
    0
    ·
    6 days ago

    x = -i;

    Do many languages let you do that? When it’s in front of a variable I would’ve expected it to be a subtraction operator only and you would need to do x = -1 * i;

      • squaresinger@lemmy.world
        link
        fedilink
        arrow-up
        0
        ·
        6 days ago

        Nope, it is not.

        x = 5
        i = 2
        x -= i // x => 3
        

        while

        x = 5
        i = 2
        x = -i // x => -2
        

        x=-i is the unary minus operator which negates the value right of it. It doesn’t matter if that value is a literal (-3), a variable (-i) or a function (-f()).

        x-=i is short for x = x-i, and here it’s a binary subtraction, so x is set to the result of i subtracted from x.

        • quilan@lemmy.world
          link
          fedilink
          arrow-up
          0
          ·
          5 days ago

          I need to append /s to my future silly replies I think… that said, I’ll never pooh-pooh a well thought response, so thanks for the nice write-up!

          • squaresinger@lemmy.world
            link
            fedilink
            arrow-up
            0
            ·
            5 days ago

            Thanks, I totally missed your sarcasm :)

            There’s a couple people in this threat who seem to actually think that x = -i is some weird magic instead of a standard feature that’s present in every major programming language.

    • squaresinger@lemmy.world
      link
      fedilink
      arrow-up
      0
      ·
      6 days ago

      Why would they not let you do that? I honestly don’t know a single language that wouldn’t let you do that. Same as basic math notation allows you to do that.

      x = -i

      is a totally valid mathematical equation.

      • spongebue@lemmy.world
        link
        fedilink
        arrow-up
        0
        ·
        6 days ago

        It’s a valid mathematical notation, sure. But there is an implicit understanding that the - in this case is making a number negative rather than subtracting (or, an implicit subtraction from 0).

        With the way negative numbers generally work in binary there would be much different ones and zeroes stored behind the scenes, so handling that would have to be pretty intentional.

        That said, I did just try it in Java because that’s what I work in normally and I swear I had a gotcha with that. But it worked fine as far as I can tell.

        • squaresinger@lemmy.world
          link
          fedilink
          arrow-up
          0
          ·
          6 days ago

          Find me a language where it doesn’t work like that, and we’ll continue the discussion.

          Unary - operator is standard in every single language that I used so far, including C/C++, Java, Python, Kotlin, Lua, JS/TS, Groovy, PHP, Visual Basic, Excel, Mathematica, Haskell, Bash.

          Here’s more info btw: https://en.wikipedia.org/wiki/Unary_operation

    • EvilHankVenture@lemmy.world
      link
      fedilink
      arrow-up
      0
      ·
      6 days ago

      In most languages I’ve seen - is both a unary negation operator and a subtraction operator depending on context. So it would negate an integer literal or a variable in this context.

      • squaresinger@lemmy.world
        link
        fedilink
        arrow-up
        0
        ·
        6 days ago

        Works fine in any language I ever used.

        I’m honestly quite surprised that this very basic language feature is even a matter of discussion here.

        • Sylvartas@lemmy.dbzer0.com
          link
          fedilink
          English
          arrow-up
          0
          ·
          5 days ago

          It certainly makes me question a lot of things. This sub somehow manages to both feed my impostor syndrome and makong me feel like a genius programmer depending on the thread.

          • squaresinger@lemmy.world
            link
            fedilink
            arrow-up
            0
            ·
            5 days ago

            Totally, yes. I guess there’s a ton of non-programmers and total beginners in this community.

            But sometimes there are some crazy good programmers here as well.

            What’s really weird though is that I got two downvotes a bit further up for claiming that unary minus is a standard language feature.

            • Sylvartas@lemmy.dbzer0.com
              link
              fedilink
              English
              arrow-up
              0
              ·
              4 days ago

              Yeah I saw that. It’s weird because I’ve used it without a second thought in tons of different languages and never had issues with it

    • boonhet@sopuli.xyz
      link
      fedilink
      arrow-up
      0
      ·
      6 days ago

      Personally I would expect it to behave the same in front of a numeric literal and in front of a variable. I do think most languages do that, but I haven’t actually tested that many and could br wrong.

  • OshaqHennessey@midwest.social
    link
    fedilink
    arrow-up
    0
    ·
    6 days ago
    function myFunction() {
      try {
        x = new Random().nextInt();
        if (x != 10) {
         throw "not 10";
        }
        else {
          return (10)
        }
        catch(err) {
          myFunction()
        }
      }
    }
    
    x = myFunction()
    

    Commit notes: Added error handling

  • Mika@piefed.ca
    link
    fedilink
    English
    arrow-up
    0
    ·
    6 days ago

    I once was helping to organize the testing of town-level algorithmic competition for school students.

    The competition had one entry level issue that was basically solvable by reading the question properly, recognising that it’s just multiplication of two numbers, and writing the simplest app ever.

    And there was one student who passed the automatic tests. We had to read the code too for the protocol, just to make sure there was no cheating.

    We looked in the code. What? Why? It had two nested for loops and a++ inside. When we understood what’s going on we couldn’t stop laughing for like solid ten minutes.

    • TheOakTree@lemmy.zip
      link
      fedilink
      arrow-up
      0
      ·
      6 days ago

      Multiplication is just repeated addition :) glad it worked for the kid, despite the… inefficiency.

      • anton@lemmy.blahaj.zone
        link
        fedilink
        arrow-up
        0
        ·
        6 days ago

        What unholy mix of languages is that? It is dominated by a blend of javascript and python, but with notes of something exotic. Maybe algol? or vhdl?, there is to little to tell.
        Impressive, someone write up a spec and publish it to the esolang wiki.

        • OshaqHennessey@midwest.social
          link
          fedilink
          arrow-up
          0
          ·
          6 days ago

          It’s an incoherent hodgepodge of C#/.NET, PowerShell, and JavaScript, each of which I’ve forgotten more about than I currently know

    • okmko@lemmy.world
      link
      fedilink
      arrow-up
      0
      ·
      6 days ago

      Freshman year of college doing assembly programming, I spent a while figuring out a “programmic” way to solve a problem, trying to wrangle labels and gotos. My friend came in with essentially this but as lookup table. It blew my mind.

      It was then that I learned to trade space for complexity.

        • juliebean@lemmy.zip
          link
          fedilink
          arrow-up
          0
          ·
          6 days ago

          it’s been a long time since i looked at brainfuck, but i suspect that ‘+’ denotes an increment, and ‘-’ denotes a decrement, so we’ve got one decrement and 20 increments.

        • anton@lemmy.blahaj.zone
          link
          fedilink
          arrow-up
          0
          ·
          6 days ago

          Because the only brainfuck instructions in your comment where a - which decrements and 20 +, each of which increments.
          Mine echos the first two characters from stdin, because of the commas and dots.

  • edinbruh@feddit.it
    link
    fedilink
    English
    arrow-up
    0
    ·
    7 days ago

    For a time on Reddit (some years ago when I still used it) there was a trend of finding the worst way of implementing is_even(x: int) -> bool. My contribution to that was a function that ran Ackerman(x,x) flipping a Boolean at every iteration, and check if it was true or false at the end.

    It works btw, I will find the proof later

      • edinbruh@feddit.it
        link
        fedilink
        English
        arrow-up
        0
        ·
        6 days ago

        The implementation is not very exciting, I capture a variable in python. It could have been done more cleanly.

        1000041934

        The proof is this. But, I could have made mistakes, it was many years ago.

        1000041935

        Note that in python you’ll never be able to run is_even(5) the stack cannot handle it

        Edit: daaaamn, that variable is ugly as hell. I would never do things like that now.

        • boonhet@sopuli.xyz
          link
          fedilink
          arrow-up
          0
          ·
          5 days ago

          That’s , uh…

          Yeah. Cooler than anything I could’ve achieved for purposefully bad is_even

          My first idea of a purposefully bad is_even is this:

          def is_even(i):
              return True if i == 0 else not is_even(abs(i)-1)
          

          But I’m sure I could come up with worse given enough time.

          • edinbruh@feddit.it
            link
            fedilink
            English
            arrow-up
            0
            ·
            edit-2
            4 days ago

            That’s also slower than most of the stuff you could come up with, it is so slow that there is no hyperoperation fast enough to describe it. There were other approaches that were almost worse though, like “the function is a switch-case that returns false by default. As complaint tickets are opened, more cases get added to the switch-case”

        • squaresinger@lemmy.world
          link
          fedilink
          arrow-up
          0
          ·
          5 days ago

          It never occurred to me that you could assign fields to a function. I mean, it totally makes sense considering that functions are objects in Python. It just never occurred to me that this is a thing one can do. Crazy.

          • edinbruh@feddit.it
            link
            fedilink
            English
            arrow-up
            0
            ·
            4 days ago

            Please don’t do that, I was stupid when I wrote that. But still, in very dynamic languages like python or js everything is an object, including functions, so you can just do object stuff on them.