Ham-Fisted 2.017

High Performance Clojure Primitives.

Topics

Namespaces

ham-fisted.api

Fast mutable and immutable associative data structures based on bitmap trie hashmaps. Mutable pathways implement the java.util.Map or Set interfaces including in-place update features such as compute or computeIfPresent.

Public variables and functions:

ham-fisted.function

Helpers for working with java.util.function package objects.

ham-fisted.hlet

Extensible let to allow efficient typed destructuring.

Public variables and functions:

ham-fisted.lazy-noncaching

Lazy, noncaching implementation of many clojure.core functions. There are several benefits of carefully constructed lazy noncaching versions:

ham-fisted.mut-map

Functions for working with java's mutable map interface

ham-fisted.primitive-invoke

For statically traced calls the Clojure compiler calls the primitive version of type-hinted functions and this makes quite a difference in tight loops. Often times, however, functions are passed by values or returned from if-statements and then you need to explicitly call the primitive overload - this makes that pathway less verbose. Functions must first be check-casted to their primitive types and then calling them will use their primitive overloads avoiding all casting.

Public variables and functions:

ham-fisted.protocols

ham-fisted.reduce

Protocol-based parallel reduction architecture and helper functions.

ham-fisted.set