Term-rewriting programming languages

Refal

Refal ("Recursive functions algorithmic language"; Russian: РЕФАЛ) "is a functional programming language oriented toward symbolic computations", including "string processing, language translation, [and] artificial intelligence". It is one of the oldest members of this family, first conceived of in 1966 as a theoretical tool, with the first implementation appearing in 1968. Refal was intended to combine mathematical simplicity with practicality for writing large and sophisticated programs. One of the first functional programming languages to do so, and unlike Lisp of its time, Refal is based on pattern matching. Its pattern matching works in conjunction with term rewriting. The basic data structure of Lisp and Prolog is a linear list built by cons operation in a sequential manner, thus with O(n) access to list's nth element. Refal's lists are built and scanned from both ends, with pattern matching working for nested lists as well as the top-level one. In effect, the basic data structure of Refal is a tree rather than a list. This gives freedom and convenience in creating data structures while using only mathematically simple control mechanisms of pattern matching and substitution. Refal also includes a feature called the freezer to support efficient partial evaluation. Refal can be applied to the processing and transformation of tree structures, similarly to XSLT. (Wikipedia).

Video thumbnail

The Importance of Atonement

The idea of ‘atonement’ sounds very old-fashioned and is deeply rooted in religious tradition. To atone means, in essence, to acknowledge one’s capacity for wrongness and one’s readiness for apology and desire for change. It’s a concept that every society needs at its center. For gifts and

From playlist RELATIONSHIPS

Video thumbnail

Underactive thyroid.mov

An general explanation of the underactive thyroid.

From playlist For Patients

Video thumbnail

Clojure - the Reader and Evaluator (4/4)

Part of a series teaching the Clojure language. For other programming topics, visit http://codeschool.org

From playlist the Clojure language

Video thumbnail

Can You Validate These Emails?

Email Validation is a procedure that verifies if an email address is deliverable and valid. Can you validate these emails?

From playlist Fun

Video thumbnail

Clojure - the Reader and Evaluator (2/4)

Part of a series teaching the Clojure language. For other programming topics, visit http://codeschool.org

From playlist the Clojure language

Video thumbnail

Condensing mulitple logarithms

👉 Learn how to condense logarithmic expressions. A logarithmic expression is an expression having logarithms in it. To condense logarithmic expressions means to use the logarithm laws to reduce logarithm expressions from the expanded form to a condensed form. Knowledge of the logarithm law

From playlist Condense Logarithms with Brackets

Video thumbnail

Outtakes

Yes. I make mistakes ... rarely. http://www.flippingphysics.com

From playlist Miscellaneous

Video thumbnail

Condensing logarithms with multiple parentheses

👉 Learn how to condense logarithmic expressions. A logarithmic expression is an expression having logarithms in it. To condense logarithmic expressions means to use the logarithm laws to reduce logarithm expressions from the expanded form to a condensed form. Knowledge of the logarithm law

From playlist Condense Logarithms with Brackets

Video thumbnail

Condensing a logarithmic expression with parenthesis

👉 Learn how to condense logarithmic expressions. A logarithmic expression is an expression having logarithms in it. To condense logarithmic expressions means to use the logarithm laws to reduce logarithm expressions from the expanded form to a condensed form. Knowledge of the logarithm law

From playlist Condense Logarithms with Brackets

Video thumbnail

Simplifying a logarithmic expression by condensing multiple terms

👉 Learn how to condense logarithmic expressions. A logarithmic expression is an expression having logarithms in it. To condense logarithmic expressions means to use the logarithm laws to reduce logarithm expressions from the expanded form to a condensed form. Knowledge of the logarithm law

From playlist Condense Logarithms with Brackets

Related pages

Palindrome | Cons | Prolog | Partial evaluation | Artificial intelligence | Pattern matching | Valentin Turchin