Skip to main content
added 30 characters in body
Source Link
Drew
  • 79.1k
  • 10
  • 123
  • 257

How are you given the set of rule names and corresponding regexps? Assuming you have them in a list, just iterate over the list.

(defvar rule+regexp-alist '((haskell-comment . "\\(\\s-+\\)--\\s-+") (foo . "re1") (bar . "re2"))
  "(RULE . REGEXP) pairs, where RULE is a symbol and REGEXP is a string.

(dolist (rl+re  rule+regexp-alist) 
  (add-to-list 'align-rules-list `(,(car rl+re)
                                   (regexp . ,(cdr rl+re))
                                   (mode 'haskell-mode)
                                   (repeat))))
(defvar rule+regexp-alist '((haskell-comment . "\\(\\s-+\\)--\\s-+") (foo . "re1") (bar . "re2"))
  "(RULE . REGEXP) pairs, where RULE is a symbol and REGEXP is a string.")

(dolist (rl+re  rule+regexp-alist) 
  (add-to-list 'align-rules-list `(,(car rl+re)
                                   (regexp . ,(cdr rl+re))
                                   (mode 'haskell-mode)
                                   (repeat))))

(But are you sure it is 'haskell-mode you want in the result, instead of just haskell-mode? IOW, you want (mode 'haskell-mode) in the result, not just (mode haskell-mode)?)

(Yes, I ignored your request to "convert to a function", as I don't see the point of that, from your description. Sounds like you just want to make several similar calls to add-to-list. If so, then just do that - factor out the "similar" parts and iterate over the list of dissimilar parts.)

How are you given the set of rule names and corresponding regexps? Assuming you have them in a list, just iterate over the list.

(defvar rule+regexp-alist '((haskell-comment . "\\(\\s-+\\)--\\s-+") (foo . "re1") (bar . "re2"))
  "(RULE . REGEXP) pairs, where RULE is a symbol and REGEXP is a string.

(dolist (rl+re  rule+regexp-alist) 
  (add-to-list 'align-rules-list `(,(car rl+re)
                                   (regexp . ,(cdr rl+re))
                                   (mode 'haskell-mode)
                                   (repeat))))

(But are you sure it is 'haskell-mode you want in the result, instead of just haskell-mode? IOW, you want (mode 'haskell-mode) in the result, not just (mode haskell-mode)?)

(Yes, I ignored your request to "convert to a function", as I don't see the point of that, from your description. Sounds like you just want to make several similar calls to add-to-list. If so, then just do that - factor out the "similar" parts and iterate over the list of dissimilar parts.)

How are you given the set of rule names and corresponding regexps? Assuming you have them in a list, just iterate over the list.

(defvar rule+regexp-alist '((haskell-comment . "\\(\\s-+\\)--\\s-+") (foo . "re1") (bar . "re2"))
  "(RULE . REGEXP) pairs, where RULE is a symbol and REGEXP is a string.")

(dolist (rl+re  rule+regexp-alist) 
  (add-to-list 'align-rules-list `(,(car rl+re)
                                   (regexp . ,(cdr rl+re))
                                   (mode 'haskell-mode)
                                   (repeat))))

(But are you sure it is 'haskell-mode you want in the result, instead of just haskell-mode? IOW, you want (mode 'haskell-mode) in the result, not just (mode haskell-mode)?)

(Yes, I ignored your request to "convert to a function", as I don't see the point of that, from your description. Sounds like you just want to make several similar calls to add-to-list. If so, then just do that - factor out the "similar" parts and iterate over the list of dissimilar parts.)

Source Link
Drew
  • 79.1k
  • 10
  • 123
  • 257

How are you given the set of rule names and corresponding regexps? Assuming you have them in a list, just iterate over the list.

(defvar rule+regexp-alist '((haskell-comment . "\\(\\s-+\\)--\\s-+") (foo . "re1") (bar . "re2"))
  "(RULE . REGEXP) pairs, where RULE is a symbol and REGEXP is a string.

(dolist (rl+re  rule+regexp-alist) 
  (add-to-list 'align-rules-list `(,(car rl+re)
                                   (regexp . ,(cdr rl+re))
                                   (mode 'haskell-mode)
                                   (repeat))))

(But are you sure it is 'haskell-mode you want in the result, instead of just haskell-mode? IOW, you want (mode 'haskell-mode) in the result, not just (mode haskell-mode)?)

(Yes, I ignored your request to "convert to a function", as I don't see the point of that, from your description. Sounds like you just want to make several similar calls to add-to-list. If so, then just do that - factor out the "similar" parts and iterate over the list of dissimilar parts.)