jfcharles Posted March 14, 2020 Posted March 14, 2020 Hi, Newcomer here, please point me to resources if I'm missing something obvious. Here is a function that substitutes attributes when they are combined. Is there an easier way of doing this? Thanks! (defun attribute-substitution (new old list-of-attributes) (mapcar (lambda (list) (join-attributes list)) (substitute-map new old (mapcar (lambda (attr) (disjoin-attributes attr)) list-of-attributes)))) (attribute-substitution 'pizz 'arco '(ten+arco pizz arco)) => (ten+pizz pizz pizz) Quote
jfcharles Posted March 14, 2020 Author Posted March 14, 2020 And here is what I have as "replace" version. For instance if you want to replace pizz by arco and arco by pizz: (defun attribute-replace (new-old-list list-of-attributes) (mapcar (lambda (list) (join-attributes list)) (replace-map new-old-list (mapcar (lambda (attr) (disjoin-attributes attr)) list-of-attributes)))) (attribute-replace '((pizz arco) (arco pizz)) '(ten+arco pizz arco pizz+marc)) => (ten+pizz arco pizz arco+marc) Let me know if there are other ways of doing this, thanks! opmo and Stephane Boussuge 2 Quote
opmo Posted March 15, 2020 Posted March 15, 2020 The function allows you to use the omn-form sequence as well: (attribute-replace '((pizz arco) (arco pizz)) '(q c4 ten+arco e4 pizz f4 arco d4 pizz+marc)) => (q c4 ten+pizz e4 arco f4 pizz d4 arco+marc) Stephane Boussuge and jfcharles 2 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.