diff options
author | michele.simionato <devnull@localhost> | 2009-04-14 14:52:53 +0000 |
---|---|---|
committer | michele.simionato <devnull@localhost> | 2009-04-14 14:52:53 +0000 |
commit | 5fc3eccc11eed608a52d8e2b0f9a85cc3d0ee472 (patch) | |
tree | ed154f73df1e1cc477abc2b27ecfb5863e644fec /scheme | |
parent | bb57bc47ab269def8814567c747b6484308849d5 (diff) | |
download | micheles-5fc3eccc11eed608a52d8e2b0f9a85cc3d0ee472.tar.gz |
First version of record-syntax
Diffstat (limited to 'scheme')
-rw-r--r-- | scheme/aps/record-syntax.sls | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/scheme/aps/record-syntax.sls b/scheme/aps/record-syntax.sls new file mode 100644 index 0000000..fa7612d --- /dev/null +++ b/scheme/aps/record-syntax.sls @@ -0,0 +1,11 @@ +#!r6rs +(library (aps record-syntax) +(export record-syntax) +(import (rnrs) (for (rnrs) (meta -1)) + (sweet-macros) (for (only (aps list-utils) range) expand run)) + +(def-syntax (record-syntax field-name ...) + (with-syntax (((i ...) (range (length #'(field-name ...))))) + #'(syntax-match (field-name ...) + (sub (ctx v field-name) #'(vector-ref v i)) ...))) +) |