package

github.com/tcrouch/multiset.cr

0.5.0 / published Jul 31, 2021 / repository

Multiset (bag) data structure

multiset

GitHub Workflow Status (branch) Documentation

A multiset (bag) implementation in Crystal.

Installation

Add this to your application's shard.yml:

dependencies:
  multiset:
    github: tcrouch/multiset.cr

Usage

require "multiset"

ms1 = Multiset{1, 1}
ms1 << 2                          # => Multiset{1, 1, 2}
ms1.merge [3, 4]                  # => Multiset{1, 1, 2, 3, 4}
ms2 = Multiset.new [2, 3, 4]
ms2.subset_of?(ms1)               # => true
ms1 & ms2                         # => Multiset{2, 3, 4}

Development

crystal spec

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors

API

  • Multiset(T)

    A Multiset (or bag) is a collection of unordered elements that is similar to a set, but allows duplicate values.