This following code works, except that the first random is always the same (Analysis) for some reason.

Anyone knows why ?

\enableregime[il1]
\starttext
\startluacode
userdata = userdata or {}
math.randomseed( os.time() )
function userdata.random(...)
context(arg[math.random(1, #arg)])
end
\stopluacode
\def\CHOOSERANDOM#1{\ctxlua{userdata.random(#1)}}
\dorecurse{10}{\CHOOSERANDOM{"Maths", "Physics", "Algebra", "Analysis", "Chemistry", "Geometry", "Wave equation", "Schrödinger equation"}\par}
\stoptext



Mathieu




> From: otared@gmail.com
> Date: Wed, 8 Jun 2011 18:52:36 +0200
> To: ntg-context@ntg.nl
> Subject: [NTG-context] Random selection of a word in a set with lua and mkiv
>
> Hi all,
>
> Assuming that we have a set of words or expressions, say
> {Maths, Physics, Algebra, Analysis, Chemistry, Geometry, Wave equation, Schrödinger equation}
> is it possible to write a lua function, named for instance
> randomselectword
> which returns one of the words or expressions selected at random in the above set?
> Indeed this is intended to be used in a TeX file processed with mkiv.
>
> Thanks in advance for any idea and help.
>
> Best regards: OK
> ___________________________________________________________________________________
> If your question is of interest to others as well, please add an entry to the Wiki!
>
> maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
> webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
> archive : http://foundry.supelec.fr/projects/contextrev/
> wiki : http://contextgarden.net
> ___________________________________________________________________________________