From 9453ce2f30e32108553a6eda6c663d130b3d1beb Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Tue, 29 Apr 2008 21:03:41 -0500 Subject: [PATCH] Slightly shorter code generated by locals --- extra/locals/locals.factor | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/extra/locals/locals.factor b/extra/locals/locals.factor index eb10735c06..8c8fa96fa5 100755 --- a/extra/locals/locals.factor +++ b/extra/locals/locals.factor @@ -81,16 +81,24 @@ C: quote UNION: special local quote local-word local-reader local-writer ; : load-locals-quot ( args -- quot ) - dup [ local-reader? ] contains? [ - [ - local-reader? [ 1array >r ] [ >r ] ? - ] map concat + dup empty? [ + drop [ ] ] [ - length [ load-locals ] curry >quotation + dup [ local-reader? ] contains? [ + [ + local-reader? [ 1array >r ] [ >r ] ? + ] map concat + ] [ + length [ load-locals ] curry >quotation + ] if ] if ; : drop-locals-quot ( args -- quot ) - length [ drop-locals ] curry ; + dup empty? [ + drop [ ] + ] [ + length [ drop-locals ] curry + ] if ; : point-free-body ( quot args -- newquot ) >r 1 head-slice* r> [ localize ] curry map concat ;