• edinbruh@feddit.it
    link
    fedilink
    English
    arrow-up
    18
    ·
    edit-2
    3 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
      1
      ·
      22 hours 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
        1
        ·
        edit-2
        21 hours 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”

        • boonhet@sopuli.xyz
          link
          fedilink
          arrow-up
          1
          ·
          19 hours ago

          the function is a switch-case that returns false by default. As complaint tickets are opened, more cases get added to the switch-case”

          Oh if that is acceptable, then my secondary idea of using an API call for this should work too. I thought that it would have to be guaranteed to be correct (as long as you don’t reach a stack overflow or something)

    • squaresinger@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      1 day 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
        1
        ·
        21 hours 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.

        • squaresinger@lemmy.world
          link
          fedilink
          arrow-up
          1
          ·
          13 hours ago

          I wasn’t going to, and after I saw it it totally makes sense that it’s possible, it just never occurred to me.

          I guess this could be used like static variables inside functions in c. So scope-limited global variables. Not a good design choice in most cases.