**(put: // ...[[harlowe:VariableToValue|VariableToValue]]//) -> //Instant//**

A left-to-right version of [[harlowe:set|(set:)]] that requires the word ''%%into%%'' rather than ''%%to%%''.

=== Rationale: ===

This macro has an identical purpose to [[harlowe:set|(set:)]] - it creates and changes variables.
For a basic explanation, see the rationale for [[harlowe:set|(set:)]].

Almost every programming language has a [[harlowe:set|(set:)]] construct, and most of these place the
variable on the left-hand-side. However, a minority, such as HyperTalk, place the variable
on the right. Harlowe allows both to be used, depending on personal preference. [[harlowe:set|(set:)]] reads
as ''%%(set:%%'' variable ''%%to%%'' value ''%%)%%'', and (put:) reads as ''%%(put:%%'' value ''%%into%%'' variable ''%%)%%''.

=== Details: ===

Just as with [[harlowe:set|(set:)]], a variable is changed using ''%%(put:%%'' value ''%%into%%'' variable ''%%)%%''. You can
also set multiple variables in a single (put:) by separating each VariableToValue
with commas: ''%%(put: 2 into $batteries, 4 into $bottles)%%'', etc.

''%%it%%'' can also be used with (put:), but, interestingly, it's used on the right-hand side of
the expression: ''%%(put: $eggs + 2 into it)%%''.

=== See also: ===

[[harlowe:set|(set:)]], [[harlowe:move|(move:)]]