Skip to content

Conversation

@mchav
Copy link
Owner

@mchav mchav commented Nov 19, 2025

No description provided.

claude and others added 6 commits November 19, 2025 05:54
Implements a new benchmark entry for Haskell using the Cassava CSV library
for dataframe operations.

Features:
- Groupby benchmark: 5 questions implemented (sum, mean aggregations)
- Join benchmark: 1 question implemented (inner join on int)
- Uses HashMap-based grouping for efficient aggregations
- Includes setup, version, and upgrade scripts
- Registered in _control/solutions.csv

The implementation demonstrates Haskell's capabilities for dataframe
operations with strict evaluation and proper benchmarking using NFData.

Files added:
- haskell/groupby-haskell.hs: Groupby benchmark implementation
- haskell/join-haskell.hs: Join benchmark implementation
- haskell/setup-haskell.sh: Setup script for Stack and dependencies
- haskell/ver-haskell.sh: Version detection script
- haskell/upg-haskell.sh: Upgrade script
- haskell/haskell-benchmark.cabal: Cabal project definition
- haskell/VERSION: Version file
- haskell/README.md: Documentation
Completely rewrote the Haskell benchmark implementation to use the
mchav/dataframe library instead of Cassava CSV.

Changes:
- Updated dependencies: Now uses dataframe >= 0.3
- Rewrote groupby-haskell.hs: Uses D.groupBy, D.aggregate with F.sum/F.mean
- Rewrote join-haskell.hs: Implements all 5 join questions using DJ.innerJoin/leftJoin
- Updated setup scripts: Simplified installation using Stack
- Updated README: Documents mchav/dataframe library and API usage

Implementation details:
- Groupby: 5 questions using type-safe expression DSL
- Join: All 5 questions using innerJoin and leftJoin operations
- Uses TypeApplications for type-safe column operations
- Leverages dataframe's efficient grouping and joining

The implementation now properly uses the mchav/dataframe library's API
with D.readCsv, D.groupBy, D.aggregate, and join operations.
@mchav mchav merged commit 75f608c into main Nov 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants