Mercurial > pub > dyncall > bindings
comparison 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 |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:0cfcc391201f |
|---|---|
| 1 # Package: rdyncall | |
| 2 # File: demo/callbacks.R | |
| 3 # Description: Creating a callback and call it via .dyncall | |
| 4 | |
| 5 # The function to wrap: | |
| 6 f <- function(x,y) x+y | |
| 7 | |
| 8 # Create the callback: | |
| 9 cb <- new.callback("ii)i", f) | |
| 10 | |
| 11 # Call the callback | |
| 12 r <- .dyncall(cb, "ii)i", 20, 3) | |
| 13 r == 23 | |
| 14 | |
| 15 # Recursive callback example: | |
| 16 | |
| 17 f <- function(x,y,f,i) | |
| 18 { | |
| 19 if (i > 1) .dyncall(f, "iipi)i", x,y,f,i-1) | |
| 20 x+y | |
| 21 } | |
| 22 | |
| 23 cb <- new.callback("iipi)i", f) | |
| 24 | |
| 25 r <- .dyncall(cb, "iipi)i", 1,1,cb,100 ) | |
| 26 r == 2 | |
| 27 |
