• nickwitha_k (he/him)@lemmy.sdf.org
    link
    fedilink
    English
    arrow-up
    2
    ·
    21 days ago

    If reading the code as non-programming logic, that conclusion makes sense, yes. However, if, in most syntaxes, is a type of flow control. What it wraps has no meaning to the if statement itself. Reading it through the lens of an interpreter/compiler makes it clear. The statement is approximately:

    If and only if a is equal to 1, do the thing {
      The thing is: assign the variable b with the value 1
    }
    

    To one not familiar with how programs are executed, it would make sense that the return value could be 1. But understanding how flow control works in programming, makes this interpretation a challenge.

    • stevedice@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      4
      ·
      21 days ago

      I don’t think you’re picking up what I’m putting down. I’m not arguing that the return value can be 1, I’m well aware that it can’t — I wrote the function so that it will always return 0. It only returns 1 if we make an incorrect assumption (and mix up semantics with formal logic, but that’s another conversation), the incorrect assumption being “if is equivalent to if, and only if