From 1c4e5d7d623d78fdfe20fbe588d37af59b6f1f2f Mon Sep 17 00:00:00 2001 From: Magnar Sveen Date: Sat, 24 Nov 2012 16:48:59 +0100 Subject: [PATCH] Remove eval from --reduce, it is evil. --- dash.el | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/dash.el b/dash.el index 3b870f4..b579013 100644 --- a/dash.el +++ b/dash.el @@ -107,9 +107,11 @@ exposed as `acc`." (defmacro --reduce (form list) "Anaphoric form of `-reduce'." - (if (eval list) - `(--reduce-from ,form ,(car (eval list)) ',(cdr (eval list))) - `(let (acc it) ,form))) + (let ((lv (make-symbol "list-value"))) + `(let ((,lv ,list)) + (if ,lv + (--reduce-from ,form (car ,lv) (cdr ,lv)) + (let (acc it) ,form))))) (defun -reduce (fn list) "Returns the result of applying FN to the first 2 items in LIST,