/cpp-list

CoW functional list in C++11.

Primary LanguageC++MIT LicenseMIT

cpp-list

CoW functional list in C++11.

Functionality

Functionality loosely follows all the nice stuff you find in Haskell (Prelude). Here's a list of functions that have been implemented so far. If the name is different in Haskell, it is given in italic.

  • Constructing lists
  • cons (:)
  • makeList [...]
  • append does not exist in Haskell in this form...
  • List operations
  • map
  • join (++)
  • filter
  • head
  • last
  • tail
  • init
  • null
  • length
  • at (!!)
  • reverse (implemented in terms of foldl therefore found at the end of the code)
  • Reducing lists (folds)
  • foldl
  • foldl1
  • foldr
  • foldr1
  • Special folds
  • concat
  • concatMap
  • Zipping and unzipping lists
  • zip
  • zip3
  • zipWith
  • zipWith3
  • unzip
  • unzip3
  • Other
  • apply does not exist in Haskell...

To Do

  • Implement more functionality
  • Write actual (unit) tests
  • More documentation
  • Performance?!

Contact

If you have any questions or suggestions feel free to write an issue report. You can also send me an email to kevin at my domain.