microlisp

command module
v0.0.0-...-8cefd3a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 15, 2022 License: ISC Imports: 4 Imported by: 0

README

microlisp

Microlisp is a Lisp interpreter. It's primarily a toy, and is a work in progress.

Its initial definition is based on McCarthy's "A Micro-Manual for Lisp: Not the Whole Truth".

Documentation is at: https://pkg.go.dev/whitehouse.id.au/microlisp

Download and Installation

$ go install whitehouse.id.au/microlisp

Documentation

Overview

Microlisp is a Lisp interpreter. It's primarily a toy, and is a work in progress.

Its initial definition is based on McCarthy's "A Micro-Manual for Lisp: Not the Whole Truth".

Environments

An environment is a value that maintains mappings between a symbol and a value. If an environment has a parent, then bindings are inherited.

The evaluator typically provides an environment implicitly.

Variables.

system-environment	Primitives are bound in this environment.
user-environment	User definitions are bound here, and it inherits system-environment.

Functions.

environment-bindings	The environment's bindings represented as an association list.

Errors

The error system is very simple. If an error value is thrown, it stops the current evaluation, and is handled and printed by the REPL.

Functions

error		Raise an error value with a message composed of its arguments.
ignore-errors	Invoke a function, trapping any errors thrown as a return value.

Directories

Path Synopsis
Package read implements a reader for Lisp expressions.
Package read implements a reader for Lisp expressions.
Package run provides a Lisp runtime.
Package run provides a Lisp runtime.
Package scan implements a scanner for Lisp source.
Package scan implements a scanner for Lisp source.
Package value implements Lisp values and their evaluation.
Package value implements Lisp values and their evaluation.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL