Skip to content

diamond-lizard/srfi-47

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

[[tags: egg]]

== srfi-47

[[toc:]]

=== Description

An alternative arrays package conforming to [[http://srfi.schemers.org/srfi-47/srfi-47.html|SRFI-47]].

=== Author

* Aubrey Jaffer, ported to Chicken by [[/users/felix winkelmann|felix winkelmann]]
* Ported to Chicken 5 by Sergey Goldgaber

=== Requirements

None

=== Documentation

The full specification can be found at
[[http://srfi.schemers.org/srfi-47/srfi-47.html|the SRFI website]].
The array prototypes for complex numbers are not supported
({{ac64}}). The 64-bit signed and unsigned array prototypes {{au64}}
and {{as64}}) are provided but may not support the full range of
numerical values on 32-bit architevtures.

Additionally, the following procedure is defined:

<procedure>(array-store ARRAY)</procedure>

Returns the underlying storage object, which may be a vector or a
[[http://srfi.schemers.org/&srfi/srfi-4.html|SRFI-4]] number vector.

Note: this array package is ''not'' compatible with the default array
library ({{srfi-25}}) that is provided with the base system. Don't use
these two libraries together in the same program.

=== Examples

<enscript highlight="scheme">
(use srfi-47)

(define fred (make-array '#(#f) 8 8))
(define freds-diagonal
  (make-shared-array fred (lambda (i) (list i i)) 8))
(array-set! freds-diagonal 'foo 3)
(array-ref fred 3 3)
 => foo

(define freds-center
  (make-shared-array fred (lambda (i j) (list (+ 3 i) (+ 3 j)))
                     2 2))
(array-ref freds-center 0 0)
 => foo
</enscript>

=== Changelog

* [[https://github.com/diamond-lizard/srfi-47/releases/tag/2.0|2.0]] - Ported to Chicken Scheme 5
* 1.1 Fixed invalid implementation of {{array?}} [Thanks to Kon Lovett]
* 1.0 Initial release

=== License

  Copyright (C) 2001, 2003 Aubrey Jaffer
  
  Permission to copy this software, to modify it, to redistribute it,
  to distribute modified versions, and to use it for any purpose is
  granted, subject to the following restrictions and understandings.
  
  1.  Any copy made of this software must include this copyright notice
  in full.
  
  2.  I have made no warranty or representation that the operation of
  this software will be error-free, and I am under no obligation to
  provide any services, by way of maintenance, update, or otherwise.
  
  3.  In conjunction with products arising from the use of this
  material, there shall be no use of my name in any advertising,
  promotional, or sales literature without prior written consent in
  each case.

About

SRFI-47 port to Chicken 5

Resources

License

Stars

Watchers

Forks

Packages

No packages published