Reconsidering Built-Ins


So what are os:argv, string:concatenation, ...?

They are predicates (properties) which cwm recognizes and handles specially. They are "built in" to cwm.

In rules terminology they are procedural attachments for sensing. They provide input to rules.

Mostly just Tim's designs, with some user feedback.

They only work in the antecedent of a rule. Cwm can figure out if they are true, and sometimes bind a variable in the process.

With functions, cwm can figure out the object (like os.argv)

With inverse functions, cwm can figure out the subject (@@ example?)

For others (math:lessThan) cwm simply figures out if it's true.

Some (math:product) just provide better (reasonable) performance. Others (os.argv) provide added power to the language.