This is proplist.egg.info, produced by makeinfo version 4.7 from
eggdoc-output.texi.

INFO-DIR-SECTION The Algorithmic Language Scheme
START-INFO-DIR-ENTRY
* proplist.egg: (proplist.egg).		Provides property list operations.
END-INFO-DIR-ENTRY


File: proplist.egg.info,  Node: Top,  Next: About this egg,  Up: (dir)

proplist egg
************

Provides property list operations.

Written by Kon Lovett (mailto:klovett@pacbell.net)

   This manual corresponds to version 1.2 of the proplist extension
library for Chicken Scheme.

* Menu:

* About this egg::
* Documentation::
* License::
* Index::


File: proplist.egg.info,  Node: About this egg,  Next: Documentation,  Prev: Top,  Up: Top

1 About this egg
****************

* Menu:

* Version history::
* Requirements::
* Usage::


File: proplist.egg.info,  Node: Version history,  Next: Requirements,  Up: About this egg

1.1 Version history
===================

`1.2'
     Exports

`1.1'
     "Real" property list

`1.0'
     Initial release


File: proplist.egg.info,  Node: Requirements,  Next: Usage,  Prev: Version history,  Up: About this egg

1.2 Requirements
================

This egg requires the following extensions:

   `srfi-1 (http://srfi.schemers.org/srfi-1/srfi-1.html)', `srfi-69
(http://srfi.schemers.org/srfi-69/srfi-69.html)'


File: proplist.egg.info,  Node: Usage,  Prev: Requirements,  Up: About this egg

1.3 Usage
=========

Load this egg like so:

   `(require-extension proplist)'


File: proplist.egg.info,  Node: Documentation,  Next: License,  Prev: About this egg,  Up: Top

2 Documentation
***************

proplist is a lisp inspired set of procedures supporting
property list operations.

   proplist supports the pre-2.2 CHICKEN "disembodied" property 			list
functionality, but without the original functions (get) and
(put!), which can be easily defined.

* Menu:

* Property list::
* Disembodied property list::
* Property list I/O::


File: proplist.egg.info,  Node: Property list,  Next: Disembodied property list,  Up: Documentation

2.1 Property list
=================

Lisp-like property list procedures.

   The name `NAME' and property key`PROPKEY' 				arguments below
should be interned symbols. Identity matching is 				performed.

 -- procedure: getprop
          (getprop NAME PROPKEY [DEFVAL])

     Returns the first property `PROPKEY' value of 						name `NAME', or the
     optional default value `DEFVAL', when no such property. When a
     default value is 						not supplied #f is assumed.

 -- procedure: putprop!
          (putprop! NAME [PROPKEY VALUE] ...)

     Sets the first property `PROPKEY' value of name 						`NAME' to the
     supplied value `VALUE'. Does 						not replace an existing property!

 -- procedure: setprop!
          (setprop! NAME [PROPKEY VALUE] ...)

     Sets the property `PROPKEY' value of name `NAME' to the supplied
     value `VALUE'. Replaces 						any existing property!

 -- procedure: remprop!
          (remprop! NAME [PROPKEY] ...)

     Removes the first property `PROPKEY' of name `NAME'.

 -- procedure: remprop/all!
          (remprop/all! NAME [PROPKEY])

     Removes every property `PROPKEY' value of name 						`NAME' matching the
     specified key, or removes name 						when a key is not specified.

 -- procedure: get-proplist
          (get-proplist NAME [PROPKEY ...])

     Returns the first property `PROPKEY' value of 						name `NAME' for
     every property key specified, as a 						property list. All
     properties returned when no key 						specified.

 -- procedure: get-properties
          (get-properties NAME [PROPKEY ...])

     Returns the first property `PROPKEY' value of 						name `NAME' for
     every property key specified, as an 						association list. All
     properties returned when no key 						specified.

 -- procedure: rem-properties!
          (rem-properties! NAME PROPKEY ...)

     Removes the first property `PROPKEY' value of 						name `NAME' for
     every property specified.

 -- procedure: rem-properties/all!
          (rem-properties/all! NAME [PROPKEY ...])

     Removes every property `PROPKEY' value of name 						`NAME' for every
     property specified, or deletes 						name when a key is not specified.


File: proplist.egg.info,  Node: Disembodied property list,  Next: Property list I/O,  Prev: Property list,  Up: Documentation

2.2 Disembodied property list
=============================

Pre-2.2 CHICKEN-like property list procedures. These 				are not
particularly useful, as no new functionality is 				provided. However, they
allow the property list procedures 				to accept hash-tables, and do
something reasonable.

 -- procedure: getprop
          (getprop HASHTABLE PROPKEY [DEFVAL])

     Returns the property `PROPKEY' value of the 						hashtable `HASHTABLE',
     or the optional default 						value`DEFVAL', when no such
     property. When a 						default value is not supplied #f is assumed.

 -- procedure: putprop!
          (putprop! HASHTABLE [PROPKEY VALUE] ...)

     Sets the property `PROPKEY' value of the 						hashtable
     `HASHTABLE' to the supplied value `VALUE'.

 -- procedure: setprop!
          (setprop! HASHTABLE [PROPKEY VALUE] ...)

     Sets the property `PROPKEY' value of hashtable 						`HASHTABLE' to the
     supplied value `VALUE'.  						Replaces any existing property!

 -- procedure: remprop!
          (remprop! HASHTABLE PROPKEY ...)

     Removes the property `PROPKEY' from the 						hashtable
     `HASHTABLE'.


File: proplist.egg.info,  Node: Property list I/O,  Prev: Disembodied property list,  Up: Documentation

2.3 Property list I/O
=====================

Property list SRFI-10 support procedures.

   A reader-ctor is defined for the external text 				representation of a
property list.

 -- procedure: print-proplist
          (print-proplist NAME [PORT])

     Writes the external text representation of the property
     list for name `NAME' to the output port `PORT'. Port defaults to
     the (current-output-port).

 -- procedure: set-proplist!
          (set-proplist! NAME PROPLIST)

     Sets the property list for name `NAME' to the 						supplied property
     list `PROPLIST'.

     Though not an I/O operation this procedure is considered
     too dangerous for regular use and buried in this section.


File: proplist.egg.info,  Node: License,  Next: Index,  Prev: Documentation,  Up: Top

3 License
*********


Copyright (c) 2005, Kon Lovett.  All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the Software),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED ASIS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.


File: proplist.egg.info,  Node: Index,  Prev: License,  Up: Top

Index
*****

 [index ]
* Menu:

* get-properties:                        Property list.        (line 49)
* get-proplist:                          Property list.        (line 42)
* getprop <1>:                           Disembodied property list.
                                                               (line 12)
* getprop:                               Property list.        (line 12)
* print-proplist:                        Property list I/O.    (line 12)
* putprop! <1>:                          Property list.        (line 19)
* putprop!:                              Disembodied property list.
                                                               (line 19)
* rem-properties!:                       Property list.        (line 56)
* rem-properties/all!:                   Property list.        (line 62)
* remprop! <1>:                          Property list.        (line 31)
* remprop!:                              Disembodied property list.
                                                               (line 31)
* remprop/all!:                          Property list.        (line 36)
* set-proplist!:                         Property list I/O.    (line 19)
* setprop! <1>:                          Property list.        (line 25)
* setprop!:                              Disembodied property list.
                                                               (line 25)



Tag Table:
Node: Top244
Node: About this egg599
Node: Version history785
Node: Requirements1000
Node: Usage1305
Node: Documentation1468
Node: Property list1933
Node: Disembodied property list4231
Node: Property list I/O5497
Node: License6310
Node: Index7495

End Tag Table
