Runtime evaluation/In an environment: Difference between revisions

Content added Content deleted
(Added Julia language)
Line 538: Line 538:


<lang javascript>evalWithX('Math.exp(x)', 0, 1) // returns 1.718281828459045</lang>
<lang javascript>evalWithX('Math.exp(x)', 0, 1) // returns 1.718281828459045</lang>

=={{header|Julia}}==
{{works with|Julia|0.6}}

<lang julia>macro evalwithx(expr, a, b)
if expr isa AbstractString
expr = parse(expr)
end
if expr.head == :quote
expr = expr.args[1]
end
return quote
x = $a
tmp = $expr
x = $b
return $expr - tmp
end
end

@evalwithx(2 ^ x, 3, 5) # raw expression (AST)
@evalwithx(:(2 ^ x), 3, 5) # quoted expression (AST)
@evalwithx("2 ^ x", 3, 5) # expression to parse (String)</lang>


=={{header|Kotlin}}==
=={{header|Kotlin}}==