TL;DR
Disco is a functional programming language designed for educational purposes in discrete mathematics, integrating mathematical notation, property testing, and algebraic types to enhance student learning and engagement.
Contribution
It introduces a specialized language tailored for discrete math courses, combining functional programming with mathematical notation and interactive tools for improved teaching.
Findings
Provides an accessible platform for students to experiment with discrete math concepts.
Includes features like property-based testing and algebraic types to facilitate learning.
Offers an interactive web REPL to support hands-on education.
Abstract
Disco is a pure, strict, statically typed functional programming language designed to be used in the setting of a discrete mathematics course. The goals of the language are to introduce students to functional programming concepts early, and to enhance their learning of mathematics by providing a computational platform for them to play with. It features mathematically-inspired notation, property-based testing, equirecursive algebraic types, subtyping, built-in list, bag, and finite set types, a REPL, and student-focused documentation. Disco is implemented in Haskell, with source code available on GitHub [https://github.com/disco-lang/disco], and interactive web-based REPL available through replit [https://replit.com/@BrentYorgey/Disco#README.md].
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
