Boo (programming language)

This is an old revision of this page, as edited by 69.138.55.241 (talk) at 02:46, 26 May 2005 (reverted changes by anti-Boo fanatic Fredrik Lundh). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Boo is a new, object oriented, statically typed, programming language for the Common Language Infrastructure with a Python-inspired syntax and a special focus on language and compiler extensibility. Some features of note include type inference, generators, multimethods, optional duck typing, macros, true closures, currying, and first class functions.

Boo is open source–licensed under an MIT/BSD style license.

Code samples

Hello world program:

print "Hello, world!"

Fibonacci series generator function:

def fib():
    a as long, b as long = 0, 1
    while true:
        yield b
        a, b = b, a + b

Basic Windows Form example demonstrating classes, closures, and events:

import System.Windows.Forms
import System.Drawing

class MyForm(Form):
    def constructor():
        b = Button(Text: "Click Me")
        b.Location = Point(100, 50)
        b.Click += do():
            MessageBox.Show("you clicked the button!")
            
        self.Controls.Add(b)

f = MyForm()
Application.Run(f)

Asynchronous design pattern with a closure:

import System

def run():
    print("executing")

print "started" 
result = run.BeginInvoke({ print("called back") })
System.Threading.Thread.Sleep(50ms)
run.EndInvoke(result)

print "done"

Currying:

plusX = { a as int | return { b as int | return a + b }}

print plusX(3)(4)


See Also