aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2023-11-01 03:14:05 +0100
committerHugo Hörnquist <hugo@lysator.liu.se>2023-11-06 00:46:26 +0100
commite4b41df44abad660f3bbbcf28abcd5838068c14b (patch)
treefe024c17f6cd8448e060cd14abad1824ae93b116
parentCleanup in (text numbers sv) (diff)
downloadcalp-e4b41df44abad660f3bbbcf28abcd5838068c14b.tar.gz
calp-e4b41df44abad660f3bbbcf28abcd5838068c14b.tar.xz
Fix API for each-string.
-rw-r--r--doc/ref/text/numbers.texi8
-rw-r--r--module/text/numbers.scm14
-rw-r--r--module/text/numbers/sv.scm2
-rw-r--r--module/vcomponent/recurrence/display/en.scm3
-rw-r--r--module/vcomponent/recurrence/display/sv.scm3
5 files changed, 13 insertions, 17 deletions
diff --git a/doc/ref/text/numbers.texi b/doc/ref/text/numbers.texi
index fce5c9fa..450b0b73 100644
--- a/doc/ref/text/numbers.texi
+++ b/doc/ref/text/numbers.texi
@@ -17,13 +17,15 @@ exists.
Note that English uses the term cardinal and ordinal @emph{numeral},
rather than @emph{number}.
+Most of these procedures takes optional keyword arguments, these
+depend on the language. See the relevant implementation for details.
-@defun number->string-ordinal n [language=(resolve-language)]
+@defun number->string-ordinal n [language=(resolve-language)] [other-kvs ...]
Convert a string into an ordinal number. These are the ``ranking''
numbers, e.g. ``first'', ``second'', ...
@end defun
-@defun number->string-cardinal n [language=(resolve-language)]
+@defun number->string-cardinal n [language=(resolve-language)] [other-kvs ...]
Convert a string into a cardinal number. These are the ``ordinary''
counting numbers, e.g. ``one'', ``two'', ...
@end defun
@@ -32,7 +34,7 @@ counting numbers, e.g. ``one'', ``two'', ...
Return the current language.
@end defun
-@defun each-string count args ...
+@defun each-string count [language=(resolve-language)] [other-kvs ...]
Return a (locale dependant) string indicating which elements of a set
are targeted, such as ``each'', ``every other'', ...
diff --git a/module/text/numbers.scm b/module/text/numbers.scm
index debd7f17..ad859a16 100644
--- a/module/text/numbers.scm
+++ b/module/text/numbers.scm
@@ -27,16 +27,8 @@
rest: extra-kvs)
(apply (get language 'number->string-ordinal) n extra-kvs))
-;; TODO change API to allow language, and stop having random extra
-;; arguments for implementations.
-(define* (each-string count . args)
- (define language (resolve-language))
+(define* (each-string count
+ optional: (language (resolve-language))
+ rest: extra-kvs)
(apply (get language 'each-string)
count args))
-
-;; scheme@(guile-user)> (number->string-cardinal 123)
-;; $10 = "hundratjugotre"
-;; scheme@(guile-user)> (number->string-ordinal 123)
-;; $11 = "hundratjugotredje"
-;; scheme@(guile-user)> (each-string 10)
-;; $12 = "var tionde"
diff --git a/module/text/numbers/sv.scm b/module/text/numbers/sv.scm
index 317a0fa4..5d6e8952 100644
--- a/module/text/numbers/sv.scm
+++ b/module/text/numbers/sv.scm
@@ -181,7 +181,7 @@
;; (each-string 2) ; => "varannan"
;; (each-string 3) ; => "var tredje"
;; (each-string 3 #t) ; => "vart tredje"
-(define* (each-string count optional: neutrum)
+(define* (each-string count key: neutrum allow-other-keys:)
(string-flatten
(cons
"var"
diff --git a/module/vcomponent/recurrence/display/en.scm b/module/vcomponent/recurrence/display/en.scm
index 18d11dba..a361be1e 100644
--- a/module/vcomponent/recurrence/display/en.scm
+++ b/module/vcomponent/recurrence/display/en.scm
@@ -83,7 +83,8 @@
[else
(list
" "
- (each-string (interval rrule) (eq? 'YEARLY (freq rrule)))
+ (each-string (interval rrule)
+ neutrum: (eq? 'YEARLY (freq rrule)))
" "
(case (freq rrule)
;; p.44 RFC 5545
diff --git a/module/vcomponent/recurrence/display/sv.scm b/module/vcomponent/recurrence/display/sv.scm
index ee8fc3fd..14ddc2c3 100644
--- a/module/vcomponent/recurrence/display/sv.scm
+++ b/module/vcomponent/recurrence/display/sv.scm
@@ -91,7 +91,8 @@
[else
(list
" "
- (each-string (interval rrule) (eq? 'YEARLY (freq rrule)))
+ (each-string (interval rrule)
+ neutrum: (eq? 'YEARLY (freq rrule)))
" "
(case (freq rrule)
;; p.44 RFC 5545