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:
“The ideal of men and women sharing equally in parenting and working is a vision still. What would it be like if women and men were less different from each other, if our worlds were not so foreign? A male friend who shares daily parenting told me that he knows at his very core what his wifes loving for their daughter feels like, and that this knowing creates a stronger bond between them.”
—Anonymous Mother. Ourselves and Our Children, by Boston Womens Health Book Collective, ch. 6 (1978)
“Neither Aristotelian nor Russellian rules give the exact logic of any expression of ordinary language; for ordinary language has no exact logic.”
—Sir Peter Frederick Strawson (b. 1919)