# Disco: A Functional Programming Language for Discrete Mathematics

**Authors:** Brent A. Yorgey  
**arXiv:** [2308.06971](https://arxiv.org/abs/2308.06971)  
**Date:** 2023-08-14  
**Summary page:** https://www.summarizepaper.com/en/arxiv-id/2308.06971v1/

## Key points

- Disco is a pure, strict, statically typed functional programming language designed for students to learn fundamental concepts of functional programming and apply mathematical principles through computational exploration.
- Developed by Brent A. Yorgey from Hendrix College, Disco offers mathematically-inspired notation, property-based testing, equirecursive algebraic types, subtyping, built-in list, bag, and finite set types.
- The language provides a REPL (Read-Eval-Print Loop) for interactive code execution and is implemented in Haskell with its source code openly available on GitHub.
- Disco's approach includes student-focused documentation to support learners in understanding functional programming and discrete mathematics intricacies.
- Research presented at the International Workshop on Trends in Functional Programming in Education 2023 highlights the synergy between discrete math topics and functional programming exercises.
- By incorporating Disco into the curriculum, educators can provide a balanced learning experience that leverages strengths of both disciplines while promoting interdisciplinary connections between mathematics and computer science.

## Summary

Disco is a pure, strict, statically typed functional programming language that aims to introduce students to fundamental concepts of functional programming and enhance their understanding and application of mathematical principles through computational exploration. Developed by Brent A. Yorgey from Hendrix College, Disco offers mathematically-inspired notation, property-based testing, equirecursive algebraic types, subtyping, built-in list, bag, and finite set types, as well as a REPL (Read-Eval-Print Loop) for interactive code execution. The language is implemented in Haskell and its source code is openly available on GitHub for further exploration and development. A Pure Functional Programming Language for Discrete Mathematics Courses

Key features of Disco include mathematically-inspired notation, property-based testing, equirecursive algebraic types, subtyping, built-in list, bag, and finite set types. Disco's Approach to Teaching Fundamental Concepts

In addition to its technical aspects,<Organization>, Disco also offers student-focused documentation to support learners in grasping the intricacies of both functional programming and discrete mathematics. <Organization>'s <Organization>: Enhancing Understanding Through Practical Coding Exercises

Research presented at the International Workshop on Trends in Functional Programming in Education 2023 (TFPIE 2023) highlights the synergy between discrete math topics and functional programming exercises. <Organization>: Bridging the Gap Between Theory and Practice

By incorporating functional programming into the curriculum,<Organization>'s can benefit from a more balanced learning experience that leverages their respective strengths while providing new perspectives on familiar subjects. <Organization>: Promoting Interdisciplinary Connections Between Mathematics and Computer Science

Overall, Disco serves as a valuable tool for educators looking to enrich their discrete mathematics courses with practical coding exercises and computational tools. Its integration of functional programming concepts not only enhances students' problem-solving skills but also promotes interdisciplinary connections between mathematics and computer science disciplines.
