The =prim= construct in Stratego allows calls to 'primitive' functions. This makes it easy to include external library functionality without further language extensions.
Currently (StrategoRelease092) a primitive function can be called with a list of term arguments:
prim("foo", t1, ..., tn)
A typical example is the following [[strategy definition]] from the =posix-process.str= module:
execvp = ?(file, argv); prim("SSL_execvp", file, argv)
which calls the =SSL_execvp= function defined in a C library, passing it the terms bound to
the variable =file= and =argv=.
It would be beneficial if primitive functions could have strategy arguments as well.
prim("foo", s1, ..., sn | t1, ..., tn)
This feature will be available in StrategoRelease093.
-- Main.EelcoVisser - 11 Jul 2003