poker-base
provides datatypes and supporting infrastructure to handle poker computation. Once developed, the package intends to be industry-ready and provide capabilities that support poker websites, simulation, research and poker trainers and assistants.
Pull requests or suggestions (preferably created in an issue), are not just encouraged but highly requested! We are quick to respond to any help you might need :)
-- >>> import Poker
-- >>> Just h = mkHole (Card Ace Club) (Card Two Diamond)
-- >>> holeToShortTxt h
-- "Ac2d"
To become Haskell's core de facto library for poker applications. We are working on this library so that your poker work can use poker-base
, and its children packages, seamlessly.
Some principles that this library aims to uphold:
- Targeted at intermediate Haskellers. This package will not shy away from using Haskell features that we deem right-for-the-job. However, we also make an effort to make
poker-base
's API usable for the intermediate Haskeller. - Thin around the waist. This library aims to contain only such datatypes and functionality that are uncontroversial (~90% agree). If a datatype or API would be incompatible with some people's needs, then that functionality will not be included
poker-base
. - 100% test coverage/documentation!
- Fast. This library is intended to be fast. However, note that API usability will come over speed always. Thankfully, Haskell has features such as
newtype
andPatternSynonyms
which we use to hide implementation details.
poker-game
: a library for the rules of no-limit poker (not just holdem)poker-histories
: a library for parsing poker site hand histories. Currently supports PokerStars and Bovada.poker-ai
: an experimental platform for researching poker strategy and intelligence.- Various other private repos. If you are interested - please drop a line to the authors :)
See Contributing.md for guidelines.
See Resources.md for help regarding the rules of poker and resources for implementing poker applications.