From svtesan at gmail.com Tue Jan 25 16:48:31 2011 From: svtesan at gmail.com (Venkatesan S) Date: Wed, 26 Jan 2011 00:48:31 +0800 Subject: [cl-date-calc-devel] date iterator extension to iterate Message-ID: Hi, Olof-joachim, iterate-devel: Thanks for the help. I have written a small driver for iterate which iterates over dates in a given range. The basic usage is: (iter (for (y m d) from-date '(2011 1 26) to '(2011 2 27) by 2 skipweekends nil) (format t "~a/~a/~a~%" d m y)) notes: 1) default value for "to" is today 2) default value for "by" is 1 3) skipweekends if true, skips over weekends I would like to include this in date-calc package, as I feel it logically belongs there. Please let me know how to go about this. I am just learning lisp, and all comments/flames are welcome. In the iterate driver, I would like to reuse the given variables (y m d) instead of gensym'ming , but I get a slew of errors, which I am unable to comprehend. Instead of: (defmacro-driver (FOR (y m d) FROM-DATE from-date-spec &optional TO to-date-spec BY (n 1) SKIP-WEEKENDS (skipval t)) "Driver for iterating over dates. All dates are in YMD format, ie (YYYY MM DD)" (let ((ty (gensym "TO-YEAR")) (tm (gensym "TO-MONTH")) (td (gensym "TO-DATE")) (fy (gensym "FROM-YEAR")) (fm (gensym "FROM-MONTH")) (fd (gensym "FROM-DATE")) ..... (,kwd ,y next (progn .... (list ,fy ,fm ,fd) .... I would like to use the input yy instead of gensym'ming to hold the current iteration value like: (defmacro-driver (FOR (y m d) FROM-DATE from-date-spec &optional TO to-date-spec BY (n 1) SKIP-WEEKENDS (skipval t)) "Driver for iterating over dates. All dates are in YMD format, ie (YYYY MM DD)" (let ((ty (gensym "TO-YEAR")) (tm (gensym "TO-MONTH")) (td (gensym "TO-DATE")) ..... (,kwd ,y next (progn .... (list ,y ,m ,d) Also, any pointers to improve the code are very much appreciated. Thanks, Venkatesan -- Audentis fortuna juvat -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: date-iter.tar.gz Type: application/x-gzip Size: 1220 bytes Desc: not available URL: From svtesan at gmail.com Tue Jan 25 16:50:58 2011 From: svtesan at gmail.com (Venkatesan S) Date: Wed, 26 Jan 2011 00:50:58 +0800 Subject: [cl-date-calc-devel] date iterator extension to iterate In-Reply-To: References: Message-ID: Hi, Olof-joachim, iterate-devel: Thanks for the help. I have written a small driver for iterate which iterates over dates in a given range. The basic usage is: (iter (for (y m d) from-date '(2011 1 26) to '(2011 2 27) by 2 skipweekends nil) (format t "~a/~a/~a~%" d m y)) notes: 1) default value for "to" is today 2) default value for "by" is 1 3) skipweekends if true, skips over weekends I would like to include this in date-calc package, as I feel it logically belongs there. Please let me know how to go about this. I am just learning lisp, and all comments/flames are welcome. In the iterate driver, I would like to reuse the given variables (y m d) instead of gensym'ming , but I get a slew of errors, which I am unable to comprehend. Instead of: (defmacro-driver (FOR (y m d) FROM-DATE from-date-spec &optional TO to-date-spec BY (n 1) SKIP-WEEKENDS (skipval t)) "Driver for iterating over dates. All dates are in YMD format, ie (YYYY MM DD)" (let ((ty (gensym "TO-YEAR")) (tm (gensym "TO-MONTH")) (td (gensym "TO-DATE")) (fy (gensym "FROM-YEAR")) (fm (gensym "FROM-MONTH")) (fd (gensym "FROM-DATE")) ..... (,kwd ,y next (progn .... (list ,fy ,fm ,fd) .... I would like to use the input yy instead of gensym'ming to hold the current iteration value like: (defmacro-driver (FOR (y m d) FROM-DATE from-date-spec &optional TO to-date-spec BY (n 1) SKIP-WEEKENDS (skipval t)) "Driver for iterating over dates. All dates are in YMD format, ie (YYYY MM DD)" (let ((ty (gensym "TO-YEAR")) (tm (gensym "TO-MONTH")) (td (gensym "TO-DATE")) ..... (,kwd ,y next (progn .... (list ,y ,m ,d) Also, any pointers to improve the code are very much appreciated. Thanks, Venkatesan -- Audentis fortuna juvat -- Audentis fortuna juvat -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: date-iter.tar.gz Type: application/x-gzip Size: 1220 bytes Desc: not available URL: