aboutsummaryrefslogtreecommitdiff
path: root/module/vcomponent/recurrence
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2022-06-12 21:09:35 +0200
committerHugo Hörnquist <hugo@lysator.liu.se>2022-06-13 04:11:35 +0200
commit73a4bfc3d8e9bb5365e33a11a6ad3b8340d5195b (patch)
treee52324edc63a240e5c0b88081c325f789168a4c5 /module/vcomponent/recurrence
parentDocument timespec and zic. (diff)
downloadcalp-73a4bfc3d8e9bb5365e33a11a6ad3b8340d5195b.tar.gz
calp-73a4bfc3d8e9bb5365e33a11a6ad3b8340d5195b.tar.xz
Remove custom let*.
While it was nice, the most important part was the multi-valued let from srfi-71 (which is implemented in srfi-71)). The minor pattern matching structures could often be replaced with car+cdr, or a propper match.
Diffstat (limited to 'module/vcomponent/recurrence')
-rw-r--r--module/vcomponent/recurrence/display/en.scm2
-rw-r--r--module/vcomponent/recurrence/display/sv.scm2
-rw-r--r--module/vcomponent/recurrence/generate.scm13
-rw-r--r--module/vcomponent/recurrence/internal.scm3
-rw-r--r--module/vcomponent/recurrence/parse.scm4
5 files changed, 14 insertions, 10 deletions
diff --git a/module/vcomponent/recurrence/display/en.scm b/module/vcomponent/recurrence/display/en.scm
index be9bdf53..68d435af 100644
--- a/module/vcomponent/recurrence/display/en.scm
+++ b/module/vcomponent/recurrence/display/en.scm
@@ -15,7 +15,7 @@
;; but 1MO, -1MO doesn't become "första och sista måndagen".
;; TODO also, grouping of -dagen. e.g. "första mån- och tisdagen"
(define (format-byday-list lst)
- (let* ((groups (group-by car lst)))
+ (let ((groups (group-by car lst)))
(intersperse
" as well as "
(map (lambda (group)
diff --git a/module/vcomponent/recurrence/display/sv.scm b/module/vcomponent/recurrence/display/sv.scm
index fe580474..35b3569b 100644
--- a/module/vcomponent/recurrence/display/sv.scm
+++ b/module/vcomponent/recurrence/display/sv.scm
@@ -20,7 +20,7 @@
;; but 1MO, -1MO doesn't become "första och sista måndagen".
;; TODO also, grouping of -dagen. e.g. "första mån- och tisdagen"
(define (format-byday-list lst)
- (let* ((groups (group-by car lst)))
+ (let ((groups (group-by car lst)))
(intersperse
" samt "
(map (lambda (group)
diff --git a/module/vcomponent/recurrence/generate.scm b/module/vcomponent/recurrence/generate.scm
index 308ec11e..4dccecf1 100644
--- a/module/vcomponent/recurrence/generate.scm
+++ b/module/vcomponent/recurrence/generate.scm
@@ -5,6 +5,7 @@
:use-module (srfi srfi-26)
:use-module (srfi srfi-41)
:use-module (srfi srfi-41 util)
+ :use-module (srfi srfi-71)
:use-module (vcomponent base)
:use-module (vcomponent recurrence internal)
:use-module (vcomponent recurrence parse)
@@ -128,7 +129,7 @@
;; can extend the recurrence set in weird ways.
(branching-fold
(lambda (rule dt)
- (let* (((key . value) rule)
+ (let* ((key value (car+cdr rule))
(d (if (date? dt) dt (get-date dt)))
;; NOTE It's proably an error to give BYHOUR, BYMINUTE, and BYSECOND
;; rules for a date object. This doesn't warn if those are given, but
@@ -158,7 +159,7 @@
(to-dt (set (month d) value)))]
[(BYDAY)
- (let* (((offset . value) value))
+ (let* ((offset value (car+cdr value)))
(case (freq rrule)
[(WEEKLY)
;; set day to that day in the week which d lies within
@@ -167,7 +168,7 @@
7))))]
[(MONTHLY)
- (let* ((instances (all-wday-in-month value (start-of-month d))))
+ (let ((instances (all-wday-in-month value (start-of-month d))))
(catch 'out-of-range
(lambda ()
(cond [(eqv? #f offset)
@@ -281,9 +282,9 @@
(let loop ((remaining limiters))
(if (null? remaining)
#t
- (let* (((key . values) (car remaining))
- (t (as-time dt))
- (d (if (date? dt) dt (get-date dt))))
+ (let ((key values (car+cdr (car remaining)))
+ (t (as-time dt))
+ (d (if (date? dt) dt (get-date dt))))
(and (case key
[(BYMONTH) (memv (month d) values)]
[(BYMONTHDAY) (memv (day d) (map (month-mod d) values))]
diff --git a/module/vcomponent/recurrence/internal.scm b/module/vcomponent/recurrence/internal.scm
index ae521d77..0503081c 100644
--- a/module/vcomponent/recurrence/internal.scm
+++ b/module/vcomponent/recurrence/internal.scm
@@ -1,6 +1,7 @@
(define-module (vcomponent recurrence internal)
#:export (repeating? format-recur-rule make-recur-rule)
+ #:use-module (srfi srfi-71)
#:use-module (srfi srfi-88) ; better keywords
#:use-module ((vcomponent base) :select (prop))
#:use-module (srfi srfi-9)
@@ -79,7 +80,7 @@
(define (byday->string pair)
- (let* (((off . day) pair))
+ (let ((off day (car+cdr pair)))
(string-append
(or (and=> off number->string) "")
(string-upcase
diff --git a/module/vcomponent/recurrence/parse.scm b/module/vcomponent/recurrence/parse.scm
index d45cedf9..a64cf4a7 100644
--- a/module/vcomponent/recurrence/parse.scm
+++ b/module/vcomponent/recurrence/parse.scm
@@ -4,6 +4,7 @@
#:export (parse-recurrence-rule)
#:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-71)
#:use-module (datetime)
#:use-module (srfi srfi-26)
#:use-module (vcomponent recurrence internal)
@@ -87,7 +88,8 @@
(define* (parse-recurrence-rule str optional: (datetime-parser parse-ics-datetime))
(fold
(lambda (kv o)
- (let* (((key val) kv))
+ (let ((key (car kv))
+ (val (cadr kv)))
(let-lazy
((symb (string->symbol val))
;; NOTE until MUST have the same value type as DTSTART