# Re: [NTG-context] Writing to .tuc directly from Lua

```On 3/24/2021 6:33 PM, Jairo A. del Rio wrote:
```
`Hi, Hans. Here's my (miserably failing) attempt:`
```
\definedataset[nicedata]

\starttext

\startluacode

local name = "nicedata"

-- For exposition only

local function dofactorial(n)

local function inner(c,m)

if m<2 then return c end

return inner(c*m, m-1)

end

return inner(1,n)

end

local function factorial(n)

local stringn = tostring(n)

if job.datasets.collected[name] then

return job.datasets.collected[name].factorial[stringn]

else

local mydata = {[stringn] = tostring(dofactorial(n))}

job.datasets.setdata{

name = name,

tag = "factorial",

data = mydata

}

return mydata[stringn]

end

end

interfaces.implement{

name = "factorial",

public = true,

arguments = {"string"},

actions = {tonumber, factorial, context}

}

\stopluacode

\factorial{7}

\stoptext

```
What happens is that, in each run, both the first and the second conditions are met, so the compilation is twice as slow, the opposite result of what I meant to do. How do I fix that?
```
\definedataset[nicedata]

\starttext

\startluacode

local function dofactorial(n)
local function inner(c,m)
if m < 2 then
return c
else
return inner(c*m, m-1)
end
end
return inner(1,n)
end

local function factorial(n)
local data = job.datasets.getdata("factorials","list")
if not data then
data = { }
end
local f = data[n]
if not f then
f = dofactorial(n)
data[n] = f
end
job.datasets.setdata {
name = "factorials",
tag  = "list",
data = data
}
return f
end

interfaces.implement{
name      = "factorial",
public    = true,
arguments = { "integer" },
actions   = { factorial, context }
}

\stopluacode

\dorecurse {20} {
\factorial #1 \relax
}

\stoptext

```
but you probably don't gain much as these factorials are not that slow (if you use them many times in a document you can just cache them)
```
Hans

-----------------------------------------------------------------
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________