On Wednesday, 7 May 2014 at 07:27:42 UTC, Mason McGill wrote:
On Tuesday, 6 May 2014 at 21:00:18 UTC, bearophile wrote:
The language tries its best to be flexible as a dynamic language. But variables never carry a run-time type tag, unlike in Lisp.

Hmm... Then how can I do this:

  x = 5
  typeof(x) # evaluates to "Int64"
  x = 5.0
  typeof(x) # evaluates to "Float64"

?

Is Julia doing something trickier than I think it is? Or do you just mean they don't carry type tags after compilation?

Maybe the first x stops existing, and a new one is created on reassignment?

A more interesting case is this (pseudo code, don't know Julia syntax):

    x = 5
    if (...) {
        x = "Hello"
    }
    typeof(x) # ???

Is that disallowed?

Reply via email to