Mercurial > pub > dyncall > bindings
diff R/rdyncall/demo/callbacks.R @ 0:0cfcc391201f
initial from svn dyncall-1745
author | Daniel Adler |
---|---|
date | Thu, 19 Mar 2015 22:26:28 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/R/rdyncall/demo/callbacks.R Thu Mar 19 22:26:28 2015 +0100 @@ -0,0 +1,27 @@ +# Package: rdyncall +# File: demo/callbacks.R +# Description: Creating a callback and call it via .dyncall + +# The function to wrap: +f <- function(x,y) x+y + +# Create the callback: +cb <- new.callback("ii)i", f) + +# Call the callback +r <- .dyncall(cb, "ii)i", 20, 3) +r == 23 + +# Recursive callback example: + +f <- function(x,y,f,i) +{ + if (i > 1) .dyncall(f, "iipi)i", x,y,f,i-1) + x+y +} + +cb <- new.callback("iipi)i", f) + +r <- .dyncall(cb, "iipi)i", 1,1,cb,100 ) +r == 2 +