Gifted Minecraft
  • Communities
  • Create Post
  • Create Community
  • heart
    Support Lemmy
  • search
    Search
  • Login
  • Sign Up
Maven (famous)@lemmy.zip to Programmer Humor@programming.dev · 2 天前

Modern Programming

lemmy.zip

message-square
74
fedilink
565

Modern Programming

lemmy.zip

Maven (famous)@lemmy.zip to Programmer Humor@programming.dev · 2 天前
message-square
74
fedilink
alert-triangle
You must log in or register to comment.
  • Ephera@lemmy.ml
    link
    fedilink
    English
    arrow-up
    120
    ·
    1 天前

    For optimal performance, you should rewrite it in Rust:

    inline_python::python! {
        print(js2py.eval_js("(number) => number % 2 ? 'odd' : 'even'")(number))
    };
    
    • ATPA9@feddit.org
      link
      fedilink
      arrow-up
      68
      ·
      edit-2
      1 天前

      And now you can use wasm to run it in a browser!

      • Victor@lemmy.world
        link
        fedilink
        arrow-up
        24
        ·
        1 天前

        Full circle 😆

        • ulterno@programming.dev
          link
          fedilink
          English
          arrow-up
          11
          ·
          1 天前

          Make sure the browser is made using Rust and run on a VM running on Linux, compiled to WASM.

  • entropicdrift@lemmy.sdf.org
    link
    fedilink
    arrow-up
    136
    ·
    2 天前
    print("odd" if num % 2 else "even")
    

    That’s the native python version, for those curious

    • Laurel Raven@lemmy.zip
      link
      fedilink
      English
      arrow-up
      3
      ·
      16 小时前

      Oh wow, I think I hate that… Condition between the results? Yuck.

    • DreadPirateShawn@lemmy.blahaj.zone
      link
      fedilink
      arrow-up
      90
      arrow-down
      3
      ·
      2 天前

      The ternary syntax is really my only real gripe with python design – putting the conditional BETWEEN the true and false values feels so very messy to me.

      • balsoft@lemmy.ml
        link
        fedilink
        arrow-up
        22
        ·
        edit-2
        1 天前

        Eh, reads pretty naturally to me. That said, (like I lisp)

        • Shareni@programming.dev
          link
          fedilink
          arrow-up
          14
          arrow-down
          1
          ·
          1 天前

          Lisps makes more sense to me though

          (if condition a b)

          VS

          a if condition else b

          • balsoft@lemmy.ml
            link
            fedilink
            arrow-up
            9
            ·
            1 天前

            I was more talking about (+ a b) and such.

        • rovingnothing29@lemmy.world
          link
          fedilink
          arrow-up
          2
          arrow-down
          1
          ·
          1 天前

          Oh, (you) (really) (like) (Lisp)? (That’s) (great!)

          • hydroptic@sopuli.xyz
            link
            fedilink
            arrow-up
            5
            ·
            edit-2
            20 小时前

            (is great (oh (really (like-p lisp you))))

      • idunnololz@lemmy.world
        link
        fedilink
        arrow-up
        4
        ·
        1 天前

        At least you guys have ternary syntax cries in kotlin.

        • Aqarius@lemmy.world
          cake
          link
          fedilink
          arrow-up
          2
          ·
          18 小时前

          It’s really special to not have ternary, but have Elvis.

      • porous_grey_matter@lemmy.ml
        link
        fedilink
        arrow-up
        1
        ·
        22 小时前

        I think it’s just what you’re used to. Imo it really matters that it’s keywords and not operator symbols - it’s meant to read closer to natural language. I prefer the c version when it’s ? and :, but I like them this way round when it’s if and else.

      • Rob Bos@lemmy.ca
        link
        fedilink
        English
        arrow-up
        12
        ·
        2 天前

        It’s kinda natural to me having used Perl a lot.

        • SpaceNoodle@lemmy.world
          cake
          link
          fedilink
          arrow-up
          21
          arrow-down
          1
          ·
          2 天前

          That’s not quite the argument you might think it is

          • Rob Bos@lemmy.ca
            link
            fedilink
            English
            arrow-up
            4
            arrow-down
            1
            ·
            1 天前

            Argument?

            • SpaceNoodle@lemmy.world
              cake
              link
              fedilink
              arrow-up
              13
              ·
              1 天前

              You know, the stuff in @_

              • Rob Bos@lemmy.ca
                link
                fedilink
                English
                arrow-up
                1
                ·
                1 天前

                heheh. I wasn’t really making an argument though

                • SpaceNoodle@lemmy.world
                  cake
                  link
                  fedilink
                  arrow-up
                  2
                  arrow-down
                  1
                  ·
                  24 小时前

                  The joke was that Perl is a clusterfuck

        • l3mming@lemmy.world
          link
          fedilink
          arrow-up
          3
          arrow-down
          1
          ·
          edit-2
          1 天前

          You clearly haven’t used Perl a lot. Perl’s ternary looks like:

          $even = $num % 2 ? “nay” : “yay”;

          Incidentally, it is also the same as PHP’s, but mainly because PHP stole it.

          • Rob Bos@lemmy.ca
            link
            fedilink
            English
            arrow-up
            1
            ·
            1 天前

            perl -e 'print "fart\n" if 1;'

          • psud@aussie.zone
            link
            fedilink
            English
            arrow-up
            2
            ·
            1 天前

            You do get the if in the middle of stuff though in the form print(debug message) if $debug

            • palordrolap@fedia.io
              link
              fedilink
              arrow-up
              4
              ·
              1 天前

              Wait until you learn that postfix conditionals are syntactic sugar and the compiler* turns that line into the equivalent of $debug and print(debug message), putting the conditional in first place, a lot like the ternary operator.

              * Perl compiles to bytecode before running.

              The ternary operator itself isn’t implemented in terms of and (and or) but it could be.

              • psud@aussie.zone
                link
                fedilink
                English
                arrow-up
                4
                ·
                1 天前

                Luckily I don’t need to read or write bytecode and all that matters to me is the syntax

    • Kaboom@reddthat.com
      link
      fedilink
      arrow-up
      9
      arrow-down
      1
      ·
      2 天前

      Why is the return first?

      • jacksilver@lemmy.world
        link
        fedilink
        arrow-up
        18
        ·
        2 天前

        I think the idea is it reads more naturally, so you can read it like this return A if statement is true else return B

        • entropicdrift@lemmy.sdf.org
          link
          fedilink
          arrow-up
          3
          ·
          2 天前

          Yep, it’s this

      • BassTurd@lemmy.world
        link
        fedilink
        arrow-up
        9
        ·
        edit-2
        2 天前

        Edit… I reread your comment and realized that python does it differently and that everything I typed was irrelevant… I’m still gonna leave it if anyone is interested in ternary expressions, but I suppose the answer to your question is, that’s just how python does it.

        That’s how ternary operators are designed to work. In essence, if you’re looking to do a single line if/then, you can directly assign a variable from the result of a ternary expression.

        As an example, I was scripting something earlier where there may or may not be a value returned from a function, but I still had to do something with that return value later. For this thing, I was using JavaScript.

        I ended up with:

        return platform == "name"  ? "Option 1" : "Option 2"
        

        If I were to write that out in a typical if/then it would be:

        if (platform == "name") {
            return "option 1"
        } else {
            return "option 2"
        }
        
        

        A ternary starts with a boolean expression, then the if true value, else the false value. That’s returned to either a variable or if in a function like my example, to the object calling the function. It’s just a way to write less code that in many cases is easier to read.

    • Gork@sopuli.xyz
      link
      fedilink
      arrow-up
      9
      ·
      2 天前

      That’s way too non-convoluted enough

      • entropicdrift@lemmy.sdf.org
        link
        fedilink
        arrow-up
        18
        arrow-down
        1
        ·
        2 天前

        Python is kinda like that in general, unless you try to make it read like ass

        • wise_pancake@lemmy.ca
          link
          fedilink
          arrow-up
          6
          ·
          2 天前

          You would not believe the number of people I’ve interviewed who excel at making Python read like ass.

          • entropicdrift@lemmy.sdf.org
            link
            fedilink
            arrow-up
            6
            ·
            2 天前

            I mean, it does have enough ways to write the same thing that it can really allow for some funny code golf, but some people just have no sense of readability whatsoever.

        • Colloidal@programming.dev
          link
          fedilink
          arrow-up
          6
          arrow-down
          1
          ·
          2 天前

          Clearly an inferior language. /s

  • owl@infosec.pub
    link
    fedilink
    English
    arrow-up
    17
    ·
    1 天前

    Just send pseudo code to AI and compile straight to binary.

  • Digital Mark@lemmy.sdf.org
    link
    fedilink
    English
    arrow-up
    40
    arrow-down
    1
    ·
    1 天前

    print( ["even", "odd"][num % 2] )

    If you need to avoid evaluating the wrong branch:

    print( [lambda: "even", lambda: "odd"][num % 2]() )

    • FireIced@lemmy.super.ynh.fr
      link
      fedilink
      arrow-up
      9
      arrow-down
      1
      ·
      1 天前

      Cursed

      • Gamma@programming.dev
        link
        fedilink
        English
        arrow-up
        10
        ·
        17 小时前

        Not as cursed as

        print("eovdedn"[n%2::2]) 
        
        • FireIced@lemmy.super.ynh.fr
          link
          fedilink
          arrow-up
          1
          ·
          17 小时前

          Indeed

  • SpaceNoodle@lemmy.world
    cake
    link
    fedilink
    arrow-up
    62
    arrow-down
    5
    ·
    2 天前

    Please. That’s C’s ternary operator. JS is just a pile of garbage cosplaying as a programming language

    • Victor@lemmy.world
      link
      fedilink
      arrow-up
      4
      ·
      1 天前

      Why do you say it’s a pile of garbage?

      • SpaceNoodle@lemmy.world
        cake
        link
        fedilink
        arrow-up
        19
        arrow-down
        1
        ·
        1 天前

        Because of all the garbage

        • Victor@lemmy.world
          link
          fedilink
          arrow-up
          2
          ·
          19 小时前

          One example that’s giving you problems? Maybe even on a daily basis if you use it for work? What’s garbage about it?

        • Fillicia@sh.itjust.works
          link
          fedilink
          arrow-up
          7
          ·
          1 天前

          Clearly the garbage collector is too effective

          • filcuk@lemmy.zip
            link
            fedilink
            arrow-up
            3
            ·
            23 小时前

            No they’re not supposed to be piling it up

            • piccolo@sh.itjust.works
              link
              fedilink
              arrow-up
              6
              ·
              23 小时前

              Is a garbage collector not a garbage disposal. Smh.

  • Scrubbles@poptalk.scrubbles.tech
    link
    fedilink
    English
    arrow-up
    13
    arrow-down
    1
    ·
    2 天前

    Peak programming

  • oni ᓚᘏᗢ@lemmy.world
    link
    fedilink
    arrow-up
    11
    ·
    2 天前

    I love something = condition and result1 or result2 in lua

    • Randelung@lemmy.world
      link
      fedilink
      arrow-up
      10
      ·
      edit-2
      2 天前

      Python does that, too.

      https://docs.python.org/3/library/stdtypes.html#boolean-operations-and-or-not

      • SatyrSack@lemmy.sdf.org
        link
        fedilink
        arrow-up
        2
        arrow-down
        1
        ·
        2 天前

        Are you just referring to how Python uses the English and/or instead of the more common &&/||? I think what the user above you was talking about was Lua’s strange ternary syntax using and/or.

        • lime!@feddit.nu
          link
          fedilink
          English
          arrow-up
          6
          ·
          edit-2
          1 天前

          no, the linked table shows how python also returns the first non-falsey result of an a or b expression rather than just giving a boolean. it’s useful for initialising optional reference args:

          def foo(a: list = None)
              a = a or []
          

          works with and as well.

    • oni ᓚᘏᗢ@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      2 天前

      often I do a function called elvis XD with the next signature elvis(condition, res1, res2)

  • PattyMcB@lemmy.world
    link
    fedilink
    arrow-up
    11
    arrow-down
    1
    ·
    2 天前

    Yeah… I played that “serial killer or programming language inventor” game.

    The only one I was completely in disagreement with was the inventor of Python. He’s definitely a mass-murderer

    • conditional_soup@lemm.ee
      link
      fedilink
      arrow-up
      6
      ·
      edit-2
      2 天前

      Are you sure it isn’t just that he’s Dutch?

  • kn0wmad1c@programming.dev
    link
    fedilink
    English
    arrow-up
    2
    arrow-down
    2
    ·
    edit-2
    2 天前

    num % 2 isn’t a boolean result in any of these languages, so I feel like it would always output “odd”

    Edit: 0 is false, everything else is true.

    • moomoomoo309@programming.dev
      link
      fedilink
      English
      arrow-up
      8
      ·
      2 天前

      All of those languages will convert numbers into booleans, 0 is false, all other numbers are true.

      • kn0wmad1c@programming.dev
        link
        fedilink
        English
        arrow-up
        3
        ·
        2 天前

        Ah that makes sense.

        • SatyrSack@lemmy.sdf.org
          link
          fedilink
          arrow-up
          2
          arrow-down
          1
          ·
          2 天前

          It doesn’t make sense. I understand it, but it doesn’t make sense.

          • Lifter@discuss.tchncs.de
            link
            fedilink
            arrow-up
            1
            ·
            18 小时前

            I agree. If anything it should check if there is a nuumber and 0 is clearly a number.

      • kn0wmad1c@programming.dev
        link
        fedilink
        English
        arrow-up
        1
        ·
        2 天前

        deleted by creator

      • kn0wmad1c@programming.dev
        link
        fedilink
        English
        arrow-up
        1
        ·
        2 天前

        deleted by creator

    • Kaboom@reddthat.com
      link
      fedilink
      arrow-up
      7
      arrow-down
      1
      ·
      2 天前

      0 is false in C, Python, and JS. It should work

    • Sleepless One@lemmy.ml
      link
      fedilink
      English
      arrow-up
      5
      ·
      2 天前

      In JS at least, there’s a concept of truthiness and falsiness. 0, undefined, null, and a few other non-boolean values are treated as false if used in conditionals and logical operations, while every other value is treated as true. I’m pretty sure python has something similar.

      • Hammerheart@programming.dev
        link
        fedilink
        arrow-up
        2
        ·
        14 小时前

        It does. Empty collections, 0, None

    • marcos@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      2 天前

      You’d be surprised.

      But seriously, numbers can be used as booleans in an impressive number of languages. Including machine code for almost every machine out there.

    • Colloidal@programming.dev
      link
      fedilink
      arrow-up
      3
      arrow-down
      1
      ·
      2 天前

      The joys of dynamic typing.

    • Maven (famous)@lemmy.zipOP
      link
      fedilink
      arrow-up
      3
      arrow-down
      1
      ·
      2 天前

      In JS 0 is the same as False

      • Lifter@discuss.tchncs.de
        link
        fedilink
        arrow-up
        1
        ·
        18 小时前

        They are not the same, but 0 can be implicitly converted to false.

        What do you get if you do: 0 === false

        • Lysergid@lemmy.ml
          link
          fedilink
          arrow-up
          1
          ·
          17 小时前

          Explosion?

Programmer Humor@programming.dev

programmer_humor@programming.dev

Subscribe from Remote Instance

Create a post
You are not logged in. However you can subscribe from another Fediverse account, for example Lemmy or Mastodon. To do this, paste the following into the search field of your instance: !programmer_humor@programming.dev

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

  • Keep content in english
  • No advertisements
  • Posts must be related to programming or programmer topics
Visibility: Public
globe

This community can be federated to other instances and be posted/commented in by their users.

  • 2.4K users / day
  • 5.14K users / week
  • 10.2K users / month
  • 19.4K users / 6 months
  • 1 local subscriber
  • 24.1K subscribers
  • 1.42K Posts
  • 47.3K Comments
  • Modlog
  • mods:
  • Feyter@programming.dev
  • adr1an@programming.dev
  • BurningTurtle@programming.dev
  • Pierre-Yves Lapersonne@programming.dev
  • BE: 0.19.9
  • Modlog
  • Legal
  • Instances
  • Docs
  • Code
  • join-lemmy.org