See the Problems module for the problems. To try your hand at solving the problems, replace the aliases in the problem modules with your own implementations.

Modules

Submodules
• Supporting definitions for binary tree problems
Submodules
• Render binary tree with layout to SVG
• Supporting definitions for crossword puzzles
• Supporting definitions for graph problems
• Supporting definitions for list problems
• Supporting definitions for logic and code problems
• Supporting definitions for monad problems
• Supporting definitions for multiway tree problems
• Last element of a list
• Penultimate element of a list
• Indexed element in a list
• Length of a list
• Reverse a list
• Palindromes
• Flatten a nested list structure
• Eliminate duplicate elements in a list
• Pack duplicates in a list
• Run-length encoding of a list
• Modified run-length encoding
• Decode a run-length encoded list
• Direct run-length encoding of a list
• Duplicate elements in a list
• Replicate elements of a list
• Drop elements in a list
• Split a list
• Extract a slice from a list
• Rotate a list
• Remove element from a list
• Insert element into a list
• Range of integers
• Select random elements from a list
• Draw random numbers
• Random permutation of a list
• Combinations
• Group into disjoint subsets
• Sorting a list of lists according to length of sublists
• Fibonacci numbers
• Fibonacci numbers with matrix exponentiation
• Primality checking
• Greatest common divisor
• Coprimality
• Euler's totient function
• List of prime factors
• List of prime factors and their multiplicities
• Euler's totient function with Euler's product formula
• Highly totient numbers
• List of prime numbers
• Goldbach's conjecture
• List of Goldbach pairs
• Modular multiplicative inverse
• Gaussian integer divisibility
• Gaussian primes
• Gaussian primes using the two-square theorem
• Truth tables for logical expressions
• Universal logic gates
• Truth tables for $$n$$-ary boolean functions
• Gray codes
• Huffman codes
• Error correction codes
• Conjunctive normal form
• Resolution rule
• Binary trees
• Construct completely balanced binary trees
• Symmetric binary trees
• Binary search trees
• Symmetric and completely balanced binary trees
• Construct height-balanced binary trees
• Height-balanced binary trees with given number of nodes
• Collect nodes of a binary tree
• Collect nodes at a given level
• Construct a complete binary tree
• Binary tree layout; in-order
• Binary tree layout; constant distance at each level
• Binary tree layout; compact
• A string representation of binary trees
• In-order and pre-order sequences of binary trees
• Dotstring representation of binary trees
• Tree construction from a node string
• Internal path length of a tree
• Post-order sequence of a tree
• Tree representation with s-expressions
• IO monad without do notation
• Collatz conjecture
• Postfix notation
• Converting between graph representations
• Paths between vertexes
• Cycles with a given vertex
• Construct spanning trees
• Construct minimum spanning tree
• Graph isomorphism
• Graph coloring
• Depth-first graph traversal
• Connected components
• Bipartite graphs
• Find all solutions to the $$n$$ queens problem
• Knight's tour
• Graceful tree labeling
• An arithmetic puzzle
• Regular graphs
Submodules
• Examples of regular graphs
• English number words
• Syntax checking
• Sudoku
• Nonograms
• Crossword puzzles
• Tutorial for solving problems
• Solutions to Ninety-Nine Haskell Problems
Submodules
• Support functions for arithmetic problems.
• Last element of a list
• Penultimate element of a list
• Indexed element in a list
• Length of a list
• Reverse a list
• Palindromes
• Flatten a nested list structure
• Eliminate duplicate elements in a list
• Pack duplicates in a list
• Run-length encoding of a list
• Modified run-length encoding
• Decode a run-length encoded list
• Direct run-length encoding of a list
• Duplicate elements in a list
• Replicate elements of a list
• Drop elements in a list
• Split a list
• Extract a slice from a list
• Rotate a list
• Remove element from a list
• Insert element into a list
• Range of integers
• Select random elements from a list
• Draw random numbers
• Random permutation of a list
• Combinations
• Group into disjoint subsets
• Sorting a list of lists according to length of sublists
• Fibonacci numbers
• Fibonacci numbers with matrix exponentiation
• Primality checking
• Greatest common divisor
• Coprimality
• Euler's totient function
• List of prime factors
• List of prime factors and their multiplicities
• Euler's totient function with Euler's product formula
• Highly totient numbers
• List of prime numbers
• Goldbach's conjecture
• List of Goldbach pairs
• Modular multiplicative inverse
• Gaussian integer divisibility
• Gaussian primes
• Gaussian primes using the two-square theorem
• Truth tables for logical expressions
• Universal logic gates
• Truth tables for $$n$$-ary boolean functions
• Gray codes
• Huffman codes
• Error correction codes
• Conjunctive normal form
• Resolution rule
• Binary trees
• Construct completely balanced binary trees
• Symmetric binary trees
• Binary search trees
• Symmetric and completely balanced binary trees
• Construct height-balanced binary trees
• Height-balanced binary trees with given number of nodes
• Collect nodes of a binary tree
• Collect nodes at a given level
• Construct a complete binary tree
• Binary tree layout; in-order
• Binary tree layout; constant distance at each level
• Binary tree layout; compact
• A string representation of binary trees
• In-order and pre-order sequences of binary trees
• Dotstring representation of binary trees
• Tree construction from a node string
• Internal path length of a tree
• Post-order sequence of a tree
• Tree representation with s-expressions
• IO monad without do notation
• Collatz conjecture
• Postfix notation
• Converting between graph representations
• Paths between vertexes
• Cycles with a given vertex
• Construct spanning trees
• Construct minimum spanning tree
• Graph isomorphism
• Graph coloring
• Depth-first graph traversal
• Connected components
• Bipartite graphs
• Find all solutions to the $$n$$ queens problem
• Knight's tour
• Graceful tree labeling
• An arithmetic puzzle
• Regular graphs
• English number words
• Syntax checking
• Sudoku
• Nonograms
• Crossword puzzles
• Tutorial for solving problems