Qu

From Wikipedia, the free encyclopedia

Qu is an open-source computer programming language written in C by Marc Krisnanto. It comparable to Python, Ruby, Perl and many others.

The language is semi-dynamic, and optionally strongly typed, with full object orientation. All variables in the language are first class objects.

The design and implementation focuses on compactness and speed, using the GNU Lightning Just In Time compiler (JIT).

[edit] External links

An information page is available at http://www.qu-lang.org/

[edit] Examples

# Ackermann 
if not (__arg__) # get input;
  println("Ackermann's function ...")
  println("Enter a number on the command line!")
else
  NUM = Int(__arg__[0])
  printf('Ack (3,%d): %d\n', NUM, Ack(3, NUM))
;;   
sub Ack(m, n) # one way
  if m == 0 return n + 1
  elif n == 0 return Ack(m - 1, 1)
  else return Ack(m - 1, Ack(m, n - 1));;
;;
 # alternate way
sub ackermann (m, n) 
    return m ? (n ? ackermann (m - 1, ackermann (m, n - 1)) :
               ackermann (m - 1, 1)) : n + 1
;;
# A simple GTK+ program
use Gtk (*)
app = application("GTK+ for Qu!") # required
app.author = "Irv Mullins"       # optional
app.date = "May 5, 2005"         # optional
win = window(app.name) 
win.set_default_size(400,300)
win.set_icon_from_file("qu.gif") # custom icon in titlebar
qu = image("qu.gif")             # picture for window
win.add(qu)
win.show_all()         # shows self and all child controls.
app.main               # start GTK+ main loop...