I have solved a variety of common problems which manipulate data structures or leverage algorithms in Racket, a dialect of Scheme. The reason for using Racket is due to its simple syntax, relatively compact IDE, and my affinity toward the LISP family. Below are some of the functions I have implemented:
- Prime number generation up to a given integer n (up to 100,000 confirmed)
- Tail-recursive fibonacci sequence generation
- List operations
- skipping elements
- interleave
- implementations of map, fold, filter, and other first-order functions
- removal of duplicate elements
- retrieval of the kth element of a list
- the sublist-packing problem
- Naive primality algorithms
- Anagram checks for strings
- Palindrome checks for strings and lists
- Set operations
- intersection
- difference
- compliment
- cartesian product
- The Ackermann non primitive-recursive function
- Quicksort
- Mergesort
Below, you can see an example of the syntax of Racket, and a problem I have solved using it. Take a look!
Click here to see the entire list of Project Euler problems, or here to peruse problems posed for Common Lisp.