Skip to content
A programming language
Haskell Vim script
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
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

You can’t perform that action at this time.