Jack Gallagher

Mathematica Summer Camp

Class of 2014


Jack would like to preface this by saying that he's really bad at summarizing people. He is often found with a smirk on his face, laughing at whatever (often sardonic) absurdity has just graced his screen. He carries at least one bootable flash drive on his person at all times, because you never know when your system is going to die and you need GParted! He spends a lot of time programming, especially in Haskell, because he likes that the types debug for him. He also tries quite hard to make the best of his corrupted hardware because genetic algorithms aren't good enough and he disagrees with evolution about what to optimize for. These facts don't really summarize him (he's bad at doing that), but hopefully they at least point you in the right direction.

Project: Polymorphic Type-Checking and Monadic Evaluation

This project is an implementation of an extremely primitive type system in Mathematica. All functions' applications are type-checked at every stage of evaluation, guaranteeing that any type variables are replaced with new, concrete referents and that no evaluation will take place if the types don't match up. Any type of kind * can be supported, as can a select few types of kind * -> * (lists specifically, though that is not demonstrated here). Types were stored in the heads of data, and in order to avoid boilerplate, functions are written monadically. There are also facilities for translating terms (written in the ugly style of the input lines) into strings (the output lines), alongside their type signatures.