Skip to content

An implementation of the Pie language from "The Little Typer" in Rust

License

Notifications You must be signed in to change notification settings

LesleyLai/rustpie

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

README

./images/logo.svg

https://github.com/LesleyLai/rustpie/workflows/Continuous%20integration/badge.svg

Rustpie is a Rust implementation of the Pie, a dependently typed language with a Lisp-like syntax. The language is formally specified in the book The Little Typer.

Rustpie is currently in very early development.

Diffrences from the canonial Pie implementation

There are some differences between the Pie language in Rustpie and the canonical Pie implementation.

REPL & file descrepency

(exit)

Rustpie adds the command (exit) to exit the REPL. It can only be used in the repl and cannot be used in source files.

Definitions in REPL

In the canonical implementation, you must claim and define in a file. Rustpie does not have this restriction, and you can add definitions directly in the REPL.

cons

In the canonical implementation, constructing pairs using cons directly in the REPL results in the “Can’t determine a type” error. Rustpie repl does not have this restriction, and it will happily infer the type:

>>> (cons 1 'a)
(the (Pair Nat Atom) (cons 1 'a))

About

An implementation of the Pie language from "The Little Typer" in Rust

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages