Wiki
Download
Manual
Eggs
API
Tests
Bugs
show
edit
history
You can edit this page using
wiki syntax
for markup.
Article contents:
== Outdated egg! This is an egg for CHICKEN 4, the unsupported old release. You're almost certainly looking for [[/eggref/5/treaps|the CHICKEN 5 version of this egg]], if it exists. If it does not exist, there may be equivalent functionality provided by another egg; have a look at the [[https://wiki.call-cc.org/chicken-projects/egg-index-5.html|egg index]]. Otherwise, please consider porting this egg to the current version of CHICKEN. [[tags: egg]] [[toc:]] == treaps This module provides a functional interface to Oleg Kiselyov's and Ivan Raikov's treap egg. Remember, that treaps are fast search-trees where balancing is replaced by inserting elements in some random fashion. Insofar, treaps are similar to skiplists. The name, treap, is a combination of tree and heap. === The routines ==== treaps <procedure>(treaps [sym])</procedure> documentation procedure. If called without arguments prints the list of exported symbols, otherwise the documentation of the exported symbol sym. ==== make-treap <procedure>(make-treap compare value?)</procedure> constructor. Creates a new treap which compares keys with a numerical compare procedure and stores key-value pairs with value-type checked by the value? predicate. ==== treap? <procedure>(treap? xpr)</procedure> type predicate. ==== treap-empty? <procedure>(treap-empty? trp)</procedure> checks it the treap argument is empty. ==== treap-key? <procedure>(treap-key? trp)</procedure> returns a predicate,which checks if its argument is a valid key. ==== treap-value? <procedure>(treap-value? trp)</procedure> returns a predicate,which checks if its argument is a valid value. ==== treap-compare <procedure>(treap-compare trp)</procedure> returns the numerical comparison operator as used by the constructor. ==== treap-get <procedure>(treap-get trp key [default])</procedure> returns the key-value pair matching the key argument, if there is any. If not evaluates default, if provided, else signals an error. ==== treap-get-min <procedure>(treap-get-min trp)</procedure> returns the key-value pair with minimal key. ==== treap-get-max <procedure>(treap-get-max trp)</procedure> returns the key-value pair with maximal key. ==== treap-size <procedure>(treap-size trp)</procedure> returns the number of key-value pairs. ==== treap-depth <procedure>(treap-depth trp)</procedure> returns the depth of the treap traversing it completely. ==== treap-delete-min! <procedure>(treap-delete-min! trp)</procedure> removes the key-value pair with minimal key. ==== treap-delete-max! <procedure>(treap-delete-max! trp)</procedure> removes the key-value pair with maximal key. ==== treap-delete! <procedure>(treap-delete! trp key [default])</procedure> removes the key-value pair corresponding to key or evaluates default. ==== treap-clear! <procedure>(treap-clear! trp)</procedure> makes the treap empty removing all key-value pairs. ==== treap-put <procedure>(treap-put key val)</procedure> inserts a new key-value pair returning #f or updates the value of an existing key returning the old pair. ==== treap-for-each-ascending <procedure>(treap-for-each-ascending trp proc)</procedure> applies proc to each key-value pair traversing trp in ascending order. ==== treap-for-each-descending <procedure>(treap-for-each-descending trp proc)</procedure> applies proc to each key-value pair traversing trp in descending order. ==== treap-debugprint <procedure>(treap-debugpring trp)</procedure> prints whole treap with debug information. == Requirements treap == Last update Nov 27, 2013 == Author [[/users/juergen-lorenz|Juergen Lorenz]] == License Copyright (c) 2013, Juergen Lorenz All rights reserved. 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 3 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. A full copy of the GPL license can be found at <http://www.gnu.org/licenses/>. == Version History ; 0.1.2 : tests updated ; 0.1.1 : tests updated ; 0.1 : initial import
Description of your changes:
I would like to authenticate
Authentication
Username:
Password:
Spam control
What do you get when you add 17 to 18?