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}}== |