1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-19 03:00:25 +02:00

Implementation for the R6RS (rnrs sorting) library.

* module/Makefile.am: Add rnrs/6/sorting.scm to RNRS_SOURCES.
* module/rnrs/6/sorting.scm: New file.
This commit is contained in:
Julian Graham 2010-03-21 17:12:38 -04:00
parent adf73f9ab4
commit 805b4179bf
2 changed files with 28 additions and 0 deletions

View file

@ -263,6 +263,7 @@ RNRS_SOURCES = \
rnrs/6/hashtables.scm \ rnrs/6/hashtables.scm \
rnrs/6/lists.scm \ rnrs/6/lists.scm \
rnrs/6/programs.scm \ rnrs/6/programs.scm \
rnrs/6/sorting.scm \
rnrs/6/syntax-case.scm \ rnrs/6/syntax-case.scm \
rnrs/6/unicode.scm \ rnrs/6/unicode.scm \
rnrs/arithmetic/6/bitwise.scm \ rnrs/arithmetic/6/bitwise.scm \

27
module/rnrs/6/sorting.scm Normal file
View file

@ -0,0 +1,27 @@
;;; sorting.scm --- The R6RS sorting library
;; Copyright (C) 2010 Free Software Foundation, Inc.
;;
;; This library is free software; you can redistribute it and/or
;; modify it under the terms of the GNU Lesser General Public
;; License as published by the Free Software Foundation; either
;; version 3 of the License, or (at your option) any later version.
;;
;; This library 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
;; Lesser General Public License for more details.
;;
;; You should have received a copy of the GNU Lesser General Public
;; License along with this library; if not, write to the Free Software
;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
(library (rnrs sorting (6))
(export list-sort vector-sort vector-sort!)
(import (rnrs base (6))
(only (guile) *unspecified* stable-sort sort!))
(define (list-sort proc list) (stable-sort list proc))
(define (vector-sort proc vector) (stable-sort vector proc))
(define (vector-sort! proc vector) (sort! vector proc) *unspecified*))