Dylan is a multi-paradigm functional and object-oriented programming language. It is dynamic while providing a programming model designed to support efficient machine code generation, including fine-grained control over dynamic and static behaviors.
define class <vehicle> (<object>) slot owner :: <string>, init-keyword: owner:, init-value: "Northern Motors"; end; define class <car> (<vehicle>) end; define class <truck> (<vehicle>) slot capacity, required-init-keyword: tons:; end;
define generic tax (v :: <vehicle>) => (tax-in-dollars :: <float>); define method tax (v :: <vehicle>) => (tax-in-dollars :: <float>) 100.00 end; define method tax (c :: <car>) => (tax-in-dollars :: <float>) 50.0 end; define method tax (t :: <truck>) => (tax-in-dollars :: <float>) // standard vehicle tax plus $10/ton next-method() + t.capacity * 10.0 end;
define function make-fibonacci() let n = 0; let m = 1; method () let result = n + m; n := m; m := result // return value end end; define constant fib = make-fibonacci(); for (i from 1 to 15) format-out("%d ", fib()) end;
- New release: 2019.1 - 2019-03-31
Open Dylan 2019.1 released.
- New release: 2014.1 - 2015-01-01
We just released Open Dylan 2014.1.
- Nix Packages Available - 2014-05-28
Open Dylan is now available in the Nix package manager.
- Call for Help! - 2014-01-28
We’re looking for help with various projects!
- New release: 2013.2 - 2013-12-23
We just released Open Dylan 2013.2.
Dylan has a large amount of documentation available:
- Introduction to Dylan:
A tutorial written for those with solid programming experience in C++ or another object-oriented, static language. It provides a gentler introduction to Dylan than does the Dylan Reference Manual (DRM).
- Dylan Programming Guide:
A book length Dylan tutorial.
- Dylan Reference Manual:
The official definition of the Dylan language and standard library.
- Open Dylan Documentation:
All of the Open Dylan documentation.