top 50 comments

sorted by: hot top controversial new old
[–] 88 points 7 months ago (1 child)

The advantage of that last approach is that it has side effects and cannot therefore be optimized out by the compiler.

  • source
  • hideshow 2 child comments
  • [–] 63 points 7 months ago (2 children)
    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

  • source
  • hideshow 4 child comments
  • [–] 41 points 7 months ago (1 child)

    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

  • source
  • hideshow 2 child comments
  • [–] 13 points 7 months ago (1 child)

    I would love to see the implementaion.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 19 points 7 months ago* (6 children)

    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.

  • source
  • parent
  • hideshow 6 child comments
  • load more comments (6 replies)
  • [–] 31 points 7 months ago (2 children)

    The compiler will optimize it anyway. /s

  • source
  • hideshow 4 child comments
  • [–] 17 points 7 months ago* (1 child)

    You jest, but you aren't wrong. At least if we are talking about C, C++ or Rust. https://godbolt.org/z/oPPfdfcf5

    .NET compiler is weak when it comes to optimizing your code; I assume Go's is as bad.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 4 points 7 months ago

    Technically yes... But I think he was more making the excuse for the gore "from the goresmith's perspective."

    And I'm not sure if the compiler in any language would change a random check function... The others are a possibility.

  • source
  • parent
  • [–] 6 points 7 months ago (1 child)

    Not sure about the last one though. The other two are trivial to optimize away.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 27 points 7 months ago* (5 children)

    How about

    x=x-x

    x++

    x++

    x++

    x++

    x++

    x++

    x++

    x++

    x++

    x++

  • source
  • hideshow 7 child comments
  • [–] 8 points 7 months 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.

  • source
  • parent
  • [–] 7 points 7 months ago (1 child)

    This is actually a valid brainf*ck program, but it results in 19, not 10.

  • source
  • parent
  • hideshow 2 child comments
  • load more comments (3 replies)
    [–] 25 points 7 months ago (2 children)

    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);
    
  • source
  • hideshow 4 child comments
  • [–] 23 points 7 months ago (1 child)

    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.

  • source
  • hideshow 2 child comments
  • [–] 15 points 7 months ago (1 child)

    It would get you promoted at Twitter, where lines of code is the productivity metric.

  • source
  • hideshow 1 child comment
  • load more comments (1 reply)
    [–] 15 points 7 months ago (4 children)

    What is the value of x in the Good example before the loop?

  • source
  • hideshow 6 child comments
  • [–] 15 points 7 months ago (1 child)

    An int. Value doesn't matter because it's overwritten.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 3 points 7 months ago (1 child)

    Not in this case. First, i is declared and assigned a value of 0. Next, x is declared and assigned a value of -i or -0. On the first loop iteration, i will decrement to -1, perform the conditional check, then execute the loop body which will assign x to -i or -(-1) or positive 1, and so on.

    The only time a variable is created without a value is if you declare one without assigning a value like with

    [int]i;

  • source
  • parent
  • hideshow 2 child comments
  • [–] 5 points 7 months ago (1 child)

    I know. OP asked what x was before the loop, and I just said it's an int. The int can be any value because as you pointed out it will be set to 0 in the first loop iteration.

  • source
  • parent
  • hideshow 2 child comments
  • load more comments (2 replies)
    [–] 10 points 7 months ago (1 child)

    Probably Microsoft: You’re hired! Go work on GitHub

    Context

  • source
  • hideshow 2 child comments
  • [–] 9 points 7 months ago (3 children)

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

  • source
  • hideshow 4 child comments
  • load more comments (2 replies)
    [–] 6 points 7 months ago (1 child)

    Wants to be Pro but doesn't even do it recursive...

  • source
  • hideshow 2 child comments
  • [–] 5 points 7 months ago* (1 child)
    function foo() {
      x = new Random();
      case (x = 10):
        return (x);
      default:
        foo()
    }
    
  • source
  • parent
  • hideshow 2 child comments
  • [–] 3 points 7 months ago* (1 child)

    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.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 4 points 7 months ago
     x = (function(){
    return 10
    })
    

    Or something like that

  • source
  • [–] 4 points 7 months ago

    Now write a function to unroll the while loop to "optimize it for the compiler"

  • source
  • [–] 3 points 7 months 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()...

  • source
  • [–] 3 points 7 months ago (3 children)
  • load more comments (2 replies)
    [–] 2 points 7 months ago (16 children)

    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;

  • source
  • hideshow 17 child comments
  • load more comments (15 replies)
    load more comments
    view more: next ›