**(move: //...[[harlowe:VariableToValue|VariableToValue]]//) -> //Instant//** A variant of [[harlowe:put|(put:)]] that deletes the source value after copying it - in effect moving the value from the source to the destination. === Example usage: === ''%%(move: $arr's 1st into $var)%%'' === Rationale: === You'll often use data structures such as [[harlowe:array|array]] or [[harlowe:datamap|datamap]] as storage for values that you'll only use once, such as a list of names to print out. When it comes time to use them, you can remove it from the structure and retrieve it in one go. === Details: === You must use the ''%%into%%'' keyword, like [[harlowe:put|(put:)]], with this macro. This is because, like [[harlowe:put|(put:)]], the destination of the value is on the right, whereas the source is on the left. You can also set multiple variables in a single (move:) by separating each VariableToValue with commas: ''%%(move: $a's 1st into $b, $a's 2nd into $c)%%'', etc. If the value you're accessing cannot be removed - for instance, if it's an array's ''%%length%%'' - then an error will be produced. === See also: === [[harlowe:push|(push:)]], [[harlowe:set|(set:)]]