⚡️ A programming language
Haskell Vim script
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
resources
src
tests
.ghci
.gitignore
Ideas.markdown
README.md
neblen.cabal
stack.yaml
test-program.neblen

README.md

A programming language, a typed Lisp, a fun time.

Neblen> (let [incr (+ 1)] (incr (incr 10)))
12 : Int

Neblen> (let [twice (fn [f x] (f (f x)))] ((twice (+ 1)) 10))
12 : Int

Neblen> :t (fn [x] x)
(fn [x] x) : (-> a a)

Neblen> :t ((fn [x] x) (fn [y] (y true)))
((fn [x] x) (fn [y] (y true))) : (-> (-> Bool a) a)

Development

First, download and install stack.

cd ~/code/neblen

# Get GHC
stack install

stack build

To run the Neblen REPL:

stack ghci neblen:exe:neblen
>> main

Tests

stack test

# Install doctest
stack install doctest

stack exec doctest -- -isrc -Wall -fno-warn-type-defaults -fno-warn-unused-do-bind src/

References

Write You a Haskell by Stephen Diehl

Types and Programming Languages by Benjamin C. Pierce

Anatomy of Programming Languages by William R. Cook

The Typed Racket Guide

Typing Haskell in Haskell