Acknowledged, Neil and Diego, thank you.

Dear Neil, LHS/RHS is used for setting attributes of a promise -- the
details of the promise that constrain its nature.  You can have a
promise without LHS/RHS.  For example:

   commands: "/bin/echo test";  # this does something
   reports: cfengine_3:: "Hello World";  # this does something
   files: "/tmp/testfile";   # this does not do anything but it is valid syntax


Dear Diego:  it's true that CFEngine 3 syntax is very consistent, and
this is a great relief to CFEngine 2 users.  However it also allows
for economy of expression, as witness implicit promise typing,
implicit class re-use, implicit for loops over lists, and external
body parts.  The author's purpose (as I learned in his classes) is to
make it easier to read policies by increasing the meaning to symbol
ratio, aka economy of expression (a lot of meaning in a few symbols).

This is like compression.  Make it faster/easier for a sysadmin to
read/assimilate the data.

Dear Mark, please correct me if I've misduplicated you.

I would posit every time you can remove an attribute without
sacrificing meaning, it's an economy of expression win.

So

   classes:  "myclass";

would be a promise to set the class "myclass".

Thanks for a great tool and a great community.  :)

Sincerely,
Aleksey
_______________________________________________
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine

Reply via email to