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
|
||||
collectors.scm
|
||||
list-extras.scm
|
||||
)
|
||||
|
||||
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 engine))
|
||||
(use-modules (gnucash report report-system collectors))
|
||||
(use-modules (gnucash report report-system list-extras))
|
||||
|
||||
(export account-destination-alist)
|
||||
(export category-by-account-report)
|
||||
@@ -150,13 +149,13 @@
|
||||
(splits-up-to (map car account-alist) min-date max-date)))
|
||||
|
||||
(define (category-report-dates-intervals dates)
|
||||
(let* ((min-date (car (list-min-max (map first dates) <)))
|
||||
(max-date (cdr (list-min-max (map second dates) <))))
|
||||
(let* ((min-date (apply min (map first dates)))
|
||||
(max-date (apply max (map second dates))))
|
||||
(list min-date max-date dates)))
|
||||
|
||||
(define (category-report-dates-accumulate dates)
|
||||
(let* ((min-date #f)
|
||||
(max-date (cdr (list-min-max dates <)))
|
||||
(max-date (apply max dates))
|
||||
(datepairs (reverse! (cdr (fold (lambda (next acc)
|
||||
(let ((prev (car 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
|
||||
test-load-report-system-module.scm
|
||||
test-collectors.scm
|
||||
test-list-extras.scm
|
||||
test-report-utilities.scm
|
||||
# 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