mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
list-extras.scm: trim useless utility functions
These functions are either better defined in R5RS (list-min-max), unused (function-compose), or being defined in the .scm using them (list-leaves).
This commit is contained in:
@@ -52,7 +52,6 @@ set (report_system_SCHEME
|
|||||||
|
|
||||||
set (report_system_SCHEME_2a
|
set (report_system_SCHEME_2a
|
||||||
collectors.scm
|
collectors.scm
|
||||||
list-extras.scm
|
|
||||||
)
|
)
|
||||||
|
|
||||||
set (report_system_SCHEME_2b
|
set (report_system_SCHEME_2b
|
||||||
|
|||||||
@@ -1,47 +0,0 @@
|
|||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
;; This program is free software; you can redistribute it and/or
|
|
||||||
;; modify it under the terms of the GNU General Public License as
|
|
||||||
;; published by the Free Software Foundation; either version 2 of
|
|
||||||
;; the License, or (at your option) any later version.
|
|
||||||
;;
|
|
||||||
;; This program is distributed in the hope that it will be useful,
|
|
||||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
;; GNU General Public License for more details.
|
|
||||||
;;
|
|
||||||
;; You should have received a copy of the GNU General Public License
|
|
||||||
;; along with this program; if not, contact:
|
|
||||||
;;
|
|
||||||
;; Free Software Foundation Voice: +1-617-542-5942
|
|
||||||
;; 51 Franklin Street, Fifth Floor Fax: +1-617-542-2652
|
|
||||||
;; Boston, MA 02110-1301, USA gnu@gnu.org
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
|
|
||||||
(define-module (gnucash report report-system list-extras))
|
|
||||||
(use-modules (srfi srfi-1))
|
|
||||||
|
|
||||||
(export list-min-max)
|
|
||||||
(export list-leaves)
|
|
||||||
(export function-compose)
|
|
||||||
|
|
||||||
(define (list-min-max list ordered?)
|
|
||||||
(define (helper list min max)
|
|
||||||
(if (null? list) (cons min max)
|
|
||||||
(let ((elt (car list)))
|
|
||||||
(helper (cdr list)
|
|
||||||
(if (ordered? elt min) elt min)
|
|
||||||
(if (ordered? elt max) max elt)))))
|
|
||||||
(helper (cdr list) (car list) (car list)))
|
|
||||||
|
|
||||||
(define (list-leaves list)
|
|
||||||
(if (not (pair? list))
|
|
||||||
(cons list '())
|
|
||||||
(fold (lambda (next acc)
|
|
||||||
(append (list-leaves next)
|
|
||||||
acc))
|
|
||||||
'()
|
|
||||||
list)))
|
|
||||||
|
|
||||||
(define (function-compose f1 f2)
|
|
||||||
(lambda a
|
|
||||||
(f1 (apply f2 a))))
|
|
||||||
@@ -30,7 +30,6 @@
|
|||||||
(use-modules (gnucash app-utils))
|
(use-modules (gnucash app-utils))
|
||||||
(use-modules (gnucash engine))
|
(use-modules (gnucash engine))
|
||||||
(use-modules (gnucash report report-system collectors))
|
(use-modules (gnucash report report-system collectors))
|
||||||
(use-modules (gnucash report report-system list-extras))
|
|
||||||
|
|
||||||
(export account-destination-alist)
|
(export account-destination-alist)
|
||||||
(export category-by-account-report)
|
(export category-by-account-report)
|
||||||
@@ -150,13 +149,13 @@
|
|||||||
(splits-up-to (map car account-alist) min-date max-date)))
|
(splits-up-to (map car account-alist) min-date max-date)))
|
||||||
|
|
||||||
(define (category-report-dates-intervals dates)
|
(define (category-report-dates-intervals dates)
|
||||||
(let* ((min-date (car (list-min-max (map first dates) <)))
|
(let* ((min-date (apply min (map first dates)))
|
||||||
(max-date (cdr (list-min-max (map second dates) <))))
|
(max-date (apply max (map second dates))))
|
||||||
(list min-date max-date dates)))
|
(list min-date max-date dates)))
|
||||||
|
|
||||||
(define (category-report-dates-accumulate dates)
|
(define (category-report-dates-accumulate dates)
|
||||||
(let* ((min-date #f)
|
(let* ((min-date #f)
|
||||||
(max-date (cdr (list-min-max dates <)))
|
(max-date (apply max dates))
|
||||||
(datepairs (reverse! (cdr (fold (lambda (next acc)
|
(datepairs (reverse! (cdr (fold (lambda (next acc)
|
||||||
(let ((prev (car acc))
|
(let ((prev (car acc))
|
||||||
(pairs-so-far (cdr acc)))
|
(pairs-so-far (cdr acc)))
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ gnc_add_test_with_guile(test-link-module-report-system test-link-module.c
|
|||||||
set(scm_test_report_system_SOURCES
|
set(scm_test_report_system_SOURCES
|
||||||
test-load-report-system-module.scm
|
test-load-report-system-module.scm
|
||||||
test-collectors.scm
|
test-collectors.scm
|
||||||
test-list-extras.scm
|
|
||||||
test-report-utilities.scm
|
test-report-utilities.scm
|
||||||
# test-test-extras.scm ;;FIXME why is this not run
|
# test-test-extras.scm ;;FIXME why is this not run
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,42 +0,0 @@
|
|||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
;; This program is free software; you can redistribute it and/or
|
|
||||||
;; modify it under the terms of the GNU General Public License as
|
|
||||||
;; published by the Free Software Foundation; either version 2 of
|
|
||||||
;; the License, or (at your option) any later version.
|
|
||||||
;;
|
|
||||||
;; This program is distributed in the hope that it will be useful,
|
|
||||||
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
;; GNU General Public License for more details.
|
|
||||||
;;
|
|
||||||
;; You should have received a copy of the GNU General Public License
|
|
||||||
;; along with this program; if not, contact:
|
|
||||||
;;
|
|
||||||
;; Free Software Foundation Voice: +1-617-542-5942
|
|
||||||
;; 51 Franklin Street, Fifth Floor Fax: +1-617-542-2652
|
|
||||||
;; Boston, MA 02110-1301, USA gnu@gnu.org
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
||||||
|
|
||||||
(debug-set! stack 50000)
|
|
||||||
(use-modules (gnucash gnc-module))
|
|
||||||
(gnc:module-begin-syntax (gnc:module-load "gnucash/app-utils" 0))
|
|
||||||
(use-modules (gnucash report report-system list-extras))
|
|
||||||
(use-modules (gnucash engine test test-extras))
|
|
||||||
|
|
||||||
(define (run-test)
|
|
||||||
(test test-list-min-max))
|
|
||||||
|
|
||||||
(define (test-list-min-max)
|
|
||||||
(and (equal? (cons 1 1) (list-min-max (list 1) <))
|
|
||||||
(equal? (cons 1 2) (list-min-max (list 1 2) <))
|
|
||||||
(equal? (cons 1 2) (list-min-max (list 2 1) <))
|
|
||||||
(equal? (cons 1 2) (list-min-max (list 1 1 2) <))
|
|
||||||
(equal? (cons 1 2) (list-min-max (list 1 2 1) <))
|
|
||||||
(equal? (cons 1 2) (list-min-max (list 1 2 2) <))
|
|
||||||
(equal? (cons 1 2) (list-min-max (list 2 1 1) <))
|
|
||||||
(equal? (cons 1 2) (list-min-max (list 2 2 1) <))
|
|
||||||
(equal? (cons 1 3) (list-min-max (list 1 1 3) <))
|
|
||||||
(equal? (cons 1 3) (list-min-max (list 1 2 3) <))
|
|
||||||
(equal? (cons 1 3) (list-min-max (list 1 3 2) <))
|
|
||||||
(equal? (cons 1 3) (list-min-max (list 2 3 1) <))
|
|
||||||
(equal? (cons 1 3) (list-min-max (list 3 2 1) <))))
|
|
||||||
Reference in New Issue
Block a user