Good price.

    • Rikudou_SageA
      link
      266 months ago

      Isn’t any math operation involving NaNs also a NaN? At least that’s my gut feeling.

    • tiredofsametab
      link
      fedilink
      86 months ago

      In JS, it’s just NaN if my browser’s console is to be believed. I suspected it would probably be {object} for no clear reason

        • Victor
          link
          fedilink
          26 months ago

          I think its type system is “okay”, I mean inherently dynamic typing is pretty error-prone. But its type coercion algorithms are bonkers. Also that whole “NaN ≠ NaN” business…

          • nickwitha_k (he/him)
            link
            fedilink
            36 months ago

            Also that whole “NaN ≠ NaN” business…

            See that’s one of the parts that is actually almost in line with other languages. In Go, for example, nilnil because nil is, by definition, undefined. You can’t say whether one thing that you know nothing about is at all like something else that you know nothing about. It really should raise an exception at the attempt to compare NaN though.

            • Victor
              link
              fedilink
              16 months ago

              If nil ≠ nil, how do you compare a variable to the literal?

              • nickwitha_k (he/him)
                link
                fedilink
                16 months ago

                You’d first check for nil values, then compare like normal. Extra step, yes, but it keeps you from hitting NPEs through that route.

                • Victor
                  link
                  fedilink
                  16 months ago

                  You’d first check for nil values

                  What does this mean, if not the same as

                  then compare like normal

                  ?

                  • nickwitha_k (he/him)
                    link
                    fedilink
                    16 months ago

                    IIRC, a nil value can be checked against a literal successfully but not against another nil value. Say you want to check for equality of two vars that could be nil. You just need an extra if statement to ensure that you are not trying to compare nil and nil or nil and a non-nil value (that’ll give you a type error or NPE):

                    var a *string
                    var b *string
                    
                    ...
                    if a != nil && b != nil {
                      if a == b {
                        fmt.Println("Party!")
                      } else {
                        fmt.Println("Also Party!")
                    }