mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 17:50:22 +00:00
samples: add Terra samples
source: https://github.com/zdevito/terra/tree/master/tests
This commit is contained in:
25
samples/Terra/quoteenv.t
Normal file
25
samples/Terra/quoteenv.t
Normal file
@@ -0,0 +1,25 @@
|
||||
--quotes, unlike functions bind symbols eagerly
|
||||
--function have :compile() to bind their symbols, but no similar thing exists
|
||||
--for quotes, making it hard to control
|
||||
--furthermore there aren't many use cases for late-binding quotes,
|
||||
--but a bunch exist for needing early-bound quotes, like below:
|
||||
|
||||
|
||||
function times5(x)
|
||||
local c = `0
|
||||
for i = 1,5 do
|
||||
c = `c + x
|
||||
end
|
||||
return c
|
||||
end
|
||||
times5 = macro(times5)
|
||||
|
||||
terra foo()
|
||||
var a = 3
|
||||
return times5(a)
|
||||
end
|
||||
|
||||
foo:printpretty()
|
||||
foo:disas()
|
||||
local test = require("test")
|
||||
test.eq(foo(),15)
|
||||
Reference in New Issue
Block a user