diff options
-rw-r--r-- | module/text/numbers.scm | 12 | ||||
-rw-r--r-- | module/text/numbers/en.scm | 5 | ||||
-rw-r--r-- | module/text/numbers/sv.scm | 4 |
3 files changed, 13 insertions, 8 deletions
diff --git a/module/text/numbers.scm b/module/text/numbers.scm index 78382767..debd7f17 100644 --- a/module/text/numbers.scm +++ b/module/text/numbers.scm @@ -1,4 +1,5 @@ (define-module (text numbers) + :use-module (srfi srfi-71) :use-module (srfi srfi-88) :use-module ((hnh util language) :select (resolve-language)) :export (number->string-cardinal @@ -16,12 +17,15 @@ proc-symb)) (define* (number->string-cardinal - n optional: (language (resolve-language))) - ((get language 'number->string-cardinal) n)) + n optional: (language (resolve-language)) + rest: extra-kvs) + (apply (get language 'number->string-cardinal) n extra-kvs)) (define* (number->string-ordinal - n optional: (language (resolve-language))) - ((get language 'number->string-ordinal) n)) + n + optional: (language (resolve-language)) + 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. diff --git a/module/text/numbers/en.scm b/module/text/numbers/en.scm index 6a5a636d..82e29c87 100644 --- a/module/text/numbers/en.scm +++ b/module/text/numbers/en.scm @@ -1,13 +1,14 @@ (define-module (text numbers en) :use-module (ice-9 format) + :use-module (srfi srfi-71) :export (number->string-cardinal number->string-ordinal each-string)) -(define (number->string-cardinal n) +(define (number->string-cardinal n . _) (format #f "~r" n)) -(define (number->string-ordinal n) +(define (number->string-ordinal n . _) (format #f "~:r" n)) ;; Allows extra args to handle eventual local changes. diff --git a/module/text/numbers/sv.scm b/module/text/numbers/sv.scm index 1760f622..51a9c4c6 100644 --- a/module/text/numbers/sv.scm +++ b/module/text/numbers/sv.scm @@ -20,7 +20,7 @@ [(<= 60 e 65) "dec"] )) -(define (number->string-cardinal n) +(define (number->string-cardinal n . _) (cond [(< n 0) (string-append "minus " (number->string-cardinal (- n)))] [(= n 0) "noll"] [(= n 1) "ett"] @@ -93,7 +93,7 @@ (number->string n))])) (define* (number->string-ordinal - n key: a-form?) + n key: a-form? allow-other-keys:) (define a-string (if a-form? "a" "e")) (cond [(>= -3 n) (format #f "~a sista" (number->string-ordinal (- n)))] [(= -2 n) "näst sista"] |