Evaluating expressions
Unicon expressions are goal-directed. When they can, they compute a result, and this is called success. Expressions that have no result are said to fail. Failure will generally prevent a surrounding expression from being performed, and it may trigger backtracking into an earlier part of the expression if there is one that can produce additional results.
This goal-directed evaluation semantics eliminates the need for a Boolean data type, which is usually found in other languages. It also dramatically increases the expressive power of the language, eliminating a lot of tedious checking for sentinel values or writing explicit loops to search for things that can be found by goal-directed evaluation and backtracking. It takes time to get used to this feature, but once mastered, code is shorter and quicker to write.
Forming basic expressions using operators
Many of Unicon's operators will be familiar from other languages, while others are unique. Here...