26 Mar
2008
26 Mar
'08
15:55
Hello! In a simple example, I saw a weird or unexpected (from me) behaviour from the c-lambda function. Here is what I did: (c-declare "#include <stdio.h>") ((c-lambda () void "printf(\"test: %d\\n\", 10);") This worked just fine, but if I do: (c-declare "#include <stdio.h>") ((c-lambda () void (string-append "printf(\"%d\\n\"," "10);")) I get: *** ERROR IN "/home/dave/temp/test.scm"@4.11 -- Third argument to 'c-lambda' must be a string Why is that the c-lambda cannot or does not evaluate its arguments? Is this occuring because c-lambda is a macro? I'd like it to evaluate my (string-append ...) because then, I could simplify the usage of the ffi with macros... Thanks! David