Re: [Chicken-users] [Q] Macro for defining function from string

2019-04-05 Thread Kristian Lein-Mathisen
I'm doing that fort of thing here:
https://github.com/kristianlm/chicken-minissh/blob/master/minissh-parsing.scm#L5-L11

Here's another example, perhaps easier to follow:

(import-for-syntax (only (chicken string) conc))
(define-syntax syntax-conc
  (er-macro-transformer
   (lambda (x r t)
 (string->symbol (apply conc (intersperse (cdr x) '-))

(expand '(syntax-conc "a" "b" "c")) ;; ==> a-b-c

I would recommend using syntax-rules whenever possible,
and only using er-macro-transformer when you have to. So, your syntax-rules
could
expand to syntax-conc.
K.
___
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users


Re: [Chicken-users] [Q] Macro for defining function from string

2019-04-05 Thread Peter Bex
On Fri, Apr 05, 2019 at 06:42:43PM +0900, Sungjin Chun wrote:
> Hi,
> In writing FFI module for C library there’s too much repetition; so I’d like 
> to write some
> macro to reduce this repetition.
> 
> What I’d like to write is something as follows: (define-my-bindings …)
> 
> (define-my-bindinngs “Float”) should emit following code.
> 
> (define float-xxx-xxx (foreign-lambda float (string-append “TH” “Float” 
> “Storage_xxx”))
> 
> What I cannot do now is generating float-xxx-xxx like function id from 
> “float-xxx-xxx” string.
> 
> How can I convert string to the id? 

Try string->symbol:

http://api.call-cc.org/5/doc/scheme/string-%3Esymbol
also documented here:
http://wiki.call-cc.org/man/5/Module%20scheme#symbols

Cheers,
Peter


signature.asc
Description: PGP signature
___
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users


[Chicken-users] [Q] Macro for defining function from string

2019-04-05 Thread Sungjin Chun
Hi,
In writing FFI module for C library there’s too much repetition; so I’d like to 
write some
macro to reduce this repetition.

What I’d like to write is something as follows: (define-my-bindings …)

(define-my-bindinngs “Float”) should emit following code.

(define float-xxx-xxx (foreign-lambda float (string-append “TH” “Float” 
“Storage_xxx”))

What I cannot do now is generating float-xxx-xxx like function id from 
“float-xxx-xxx” string.

How can I convert string to the id? 

Thanks in advance.
___
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users