|
Boo is an object oriented, statically typed programming language developed starting in 2003, which seeks to make use of the Common Language Infrastructure support for Unicode, globalization and web style applications, while using 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. Object-oriented programming (OOP) is a computer programming paradigm in which a software system is modeled as a set of objects that interact with each other. ...
On computer science, a datatype (often simply type) is a name or label for a set of values and some operations which can be performed on that set of values. ...
Computer code (HTML with JavaScript) in a tool that uses syntax highlighting (colors) to help the developer see the purpose of each piece of code. ...
2003 (MMIII) was a common year starting on Wednesday of the Gregorian calendar. ...
The Common Language Infrastructure (CLI) is an open specification developed by Microsoft that describes the executable code and runtime environment that form the core of the Microsoft . ...
Due to technical limitations, some web browsers may not display some special characters in this article. ...
Internationalization and localization are means of adapting products such as publications or software for non-native environments, especially other nations and cultures. ...
Python is an interpreted programming language created by Guido van Rossum in 1990. ...
Type inference is a feature present in some strongly statically typed programming languages. ...
In computer science, a generator is a special routine that can be used to control the iteration behaviour of a loop. ...
This article or section should be merged with Multiple dispatch Developers of computer software typically organize source code into named blocks called variously subroutines, procedures, subprograms, functions, or methods. ...
In computer science, duck typing is a term for dynamic typing typical of some programming languages, such as Smalltalk or Visual FoxPro, where a variables value itself determines what the variable can do. ...
...
In programming languages, a closure is a function that refers to free variables in its lexical context. ...
In computer science, currying is the technique of transforming a function taking multiple arguments into a function that takes a single argument (the first of the arguments to the original function) and returns a new function that takes the remainder of the arguments and returns the result. ...
In computing, a first-class object (also -value, -entity, -citizen), in the context of a particular programming language, is an entity which can be used in programs without restriction (when compared to other kinds of objects in the same language). ...
Boo is open source–licensed under an MIT/BSD style license. Open source refers to projects that are open to the public and which draw on other projects that are freely available to the general public. ...
This article is about Free Software as defined by the sociopolitical Free Software movement; for information on software distributed without charge, see freeware. ...
The MIT License, originated at the Massachusetts Institute of Technology, is a license for the use of certain types of computer software. ...
The BSD license is a permissive license and is one of the most widely used free software licenses. ...
Boo can be used together with Microsoft .NET and Mono. Microsoft . ...
Mono is a project led by Novell, Inc. ...
Code samples
Hello world program print "Hello, world!" To meet Wikipedias quality standards, this article or section may require cleanup. ...
def fib(): a, b = 0L, 1L while true: yield b a, b = b, a + b In mathematics, the Fibonacci numbers, named after Leonardo of Pisa, known as Fibonacci, form a sequence defined recursively by: In other words, each number is the sum of the two numbers before it. ...
In computer science, a generator is a special routine that can be used to control the iteration behaviour of a loop. ...
Basic Windows Form example demonstrating classes, closures, and events import System.Windows.Forms import System.Drawing class MyForm(Form): def constructor(message as string): b = Button(Text: "Click Me") b.Location = Point(100, 50) b.Click += do(): MessageBox.Show(message) self.Controls.Add(b) f = MyForm("you clicked the button!") Application.Run(f) In object-oriented programming, classes are used to group related variables and functions. ...
In programming languages, a closure is a function that refers to free variables in its lexical context. ...
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" In programming languages, a closure is a function that refers to free variables in its lexical context. ...
plusX = { a as int | return { b as int | return a + b }} print plusX(3)(4) In English: "plusX is a function taking integer a, which returns another function taking integer b that returns a+b." In computer science, currying is the technique of transforming a function taking multiple arguments into a function that takes a single argument (the first of the arguments to the original function) and returns a new function that takes the remainder of the arguments and returns the result. ...
Edit: This isn't currying. This is just a function that returns a function. Currying would be something like: def add(a as int, b as int): return a + b add_two = add(2) Then, add_two would be a partially applied add, with a=2. add_two(5) Would set b=5, call the function, and return 7. Which Boo cannot do.
See also - IronPython - an implementation of Python for the .NET framework, similar to Jython.
Image File history File links Portal. ...
IronPython is a new implementation of the Python programming language, targeting . ...
Jython, formerly known as JPython, is an implementation of the Python programming language written in Java. ...
External links - Boo Homepage
- Boo Language Guide
- Boo Google discussion group
- Duck Typing - dynamic typing in boo
- "Gotchas" for Python users
- Boo Recipes, including:
- Serializing objects
- Regular expressions
- Invoking native methods with DllImport
- 3D OpenGL Samples
- Multimethods in boo
- Dynamic Inheritance - fun with IQuackFu
|