Qi (programming Language) - Core Language

Core Language

The Qi core language is a simplification of the Lisp language. Functions are written in prefix form. Symbols, variables, booleans, numbers, strings and characters are all self-evaluating if typed at the top level. Here are some examples.

Here is the traditional Hello world program in Qi:

(output "Hello, world~%")

Lists are constructed with with spaces separating the elements of the list.

A factorial function using pattern matching:

(define factorial 0 -> 1 N -> (* N (factorial (- N 1))))

A lambda function in Qi that multiplies its input by 2.

(/. X (* X 2))

The membership function using pattern-matching over lists. (Qi largely follows the Edinburgh syntax convention for matching (i.e. variables are headed in uppercase), except that spaces are used instead of commas to separate items.)

(define member _ -> false X -> true X -> (member X Y))

A function using guards that finds the first number greater than N in a list.

(define find_greater N -> (error "no number greater than ~A.~%" N) N -> M where (> M N) N -> (find_greater N Ns))

Read more about this topic:  Qi (programming Language)

Famous quotes containing the words core and/or language:

    For books are more than books, they are the life
    The very heart and core of ages past,
    The reason why men lived and worked and died,
    The essence and quintessence of their lives.
    Amy Lowell (1874–1925)

    English general and singular terms, identity, quantification, and the whole bag of ontological tricks may be correlated with elements of the native language in any of various mutually incompatible ways, each compatible with all possible linguistic data, and none preferable to another save as favored by a rationalization of the native language that is simple and natural to us.
    Willard Van Orman Quine (b. 1908)