muse_builtin_hashtable.c File Reference

#include "muse_builtins.h"
#include "muse_port.h"
#include <stdlib.h>
#include <memory.h>

Include dependency graph for muse_builtin_hashtable.c:


Data Structures

struct  hashtable_t
struct  _defs

Functions

static void hashtable_init (void *p, muse_cell args)
static void hashtable_mark (void *p)
static void hashtable_destroy (void *p)
static void hashtable_write (void *ptr, void *port)
 Writes the hashtable out to the given port in the form.
static int bucket_for_hash (muse_int hash, int modulus)
static void hashtable_rehash (hashtable_t *h, int new_bucket_count)
muse_cell fn_hashtable_stats (muse_env *env, void *context, muse_cell args)
static muse_cellhashtable_add (hashtable_t *h, muse_cell key, muse_cell value, muse_int *hash_opt)
static muse_cellhashtable_get (hashtable_t *h, muse_cell key, muse_int *hash_out)
muse_cell fn_hashtable (muse_env *env, hashtable_t *h, muse_cell args)
static muse_cell hashtable_size (void *self)
static void hashtable_merge_one (hashtable_t *h1, muse_cell key, muse_cell new_value, muse_cell reduction_fn)
static muse_cell hashtable_map (void *self, muse_cell fn)
static void hashtable_merge (hashtable_t *h1, hashtable_t *h2, muse_cell reduction_fn)
static muse_cell hashtable_join (void *self, muse_cell objlist, muse_cell reduction_fn)
static muse_cell hashtable_collect (void *self, muse_cell predicate, muse_cell mapper, muse_cell reduction_fn)
static muse_cell hashtable_reduce (void *self, muse_cell reduction_fn, muse_cell initial)
static void * hashtable_view (int id)
muse_cell fn_mk_hashtable (muse_env *env, void *context, muse_cell args)
 (mk-hashtable [size]).
muse_cell fn_hashtable_p (muse_env *env, void *context, muse_cell args)
 (hashtable? ht).
muse_cell fn_hashtable_size (muse_env *env, void *context, muse_cell args)
 (hashtable-size ht).
muse_cell fn_alist_to_hashtable (muse_env *env, void *context, muse_cell args)
 (hashtable alist).
muse_cell fn_hashtable_to_alist (muse_env *env, void *context, muse_cell args)
 (hashtable->alist ht).
void muse_define_builtin_type_hashtable ()
muse_cell muse_mk_hashtable (int length)
 Creates a hashtable with a bucket count setup according to the given desired length.
int muse_hashtable_length (muse_cell ht)
 Returns the number of key-value pairs put into the hash table.
muse_cell muse_hashtable_get (muse_cell ht, muse_cell key)
 Returns the key-value pair with the given key as the head if the key is present in the hash table, otherwise it returns MUSE_NIL.
muse_cell muse_hashtable_put (muse_cell ht, muse_cell key, muse_cell value)
 Associates the given value with the given key in the hash table.

Variables

static muse_monad_view_t g_hashtable_monad_view
static muse_functional_object_type_t g_hashtable_type
static struct _defs k_hashtable_funs []

Detailed Description

Author:
Srikumar K. S. (mailto:kumar@muvee.com)
Copyright (c) 2006 Jointly owned by Srikumar K. S. and muvee Technologies Pte. Ltd.

All rights reserved. See LICENSE.txt distributed with this source code or http://muvee-symbolic-expressions.googlecode.com/svn/trunk/LICENSE.txt for terms and conditions under which this software is provided to you.

Implements functional hash tables for constant time random access to a property list.


Generated on Mon Sep 25 23:12:47 2006 for muSE by  doxygen 1.4.7