Home

Hi is a light-weight minimal functional language without a lot of fuss. Its sole intention is to remain simple, easy and straightforward be it in learning curve, expectations, or use.

Features

  • Pattern matching
  • Strongly typed
  • Mostly Pure and Eager
  • Interfaces and Instances
  • Exception support
  • Binds easily to C dynamic libraries
  • Compiles to C

Motivation

Functional programming is a good approach to small scale software development. However, in some cases, you don't want the overhead of elaborate and baroque fully-featured languages like Haskell or ML and programming functionally in C just doesn't cut it. Hi is a simple solution which tries to be in the middle of the mentioned three languages.

Current State of Affairs

The current compiler, named "The Grafwegen Hi Compiler named Hic - Version 0.1 - Not Even Wrong," is not much more than an initial bootstrap compiler. It accepts most primitives, is slow, produces slow C code, and its type system is unfinished. However, it seems to work mostly as long as the written code which goes in is correct and it is self hosting. So, if you feel like experimenting with it, try it in the download section.

NOTE: I went through the old-skool process of bootstrapping the compiler and making it self-hosting. For various reasons, the compiler doesn't perform as expected. Moreover, getting it right where all you have is a bootstrap compiler turns out to be ridiculously difficult. I recently went ahead and started implementing an interpreter/compiler in C++ which will target LLVM. That will take a few years to get right, so bear with me.