Multiple choice technology programming languages

How does the following macros will resolve? What will be the output in log file? %let one=two; %let two=three; %let three=one; %put &one; %put &&one; %put &&&one;

  1. two, two, one

  2. two, three, one

  3. two, two, three

  4. two, two, two

Reveal answer Fill a bubble to check yourself
C Correct answer
Explanation

The first PUT resolves &one normally to 'two'. The double ampersand &&one resolves the first & as a delimiter, triggering another lookup of &one which gives 'two'. The triple &&&one resolves the first two as delimiters, looking up &&one (two), then &one (three). Output: two, two, three.