title: Why can't a variable be passed into the MacVim :colorscheme function?
body: <p>I'd like to set a mapping to loop through a list of colorschemes in MacVim.</p>
  
  <p>Ideally, I'd have an array of color schemes like this:</p>
  
  <pre><code>let s:schemes = ['zellner','ron','morning','murphy','peachpuff','torte']
  </code></pre>
  
  <p>And in a function set the colorscheme to an index of this array:</p>
  
  <pre><code>colorscheme s:schemes[s:schemeindex]
  </code></pre>
  
  <p>However this above line does not work.  Why?  </p>
  
  <p>Instead, I use a workaround which works fine:</p>
  
  <pre><code>function SwitchScheme()
      if s:schemeindex == 0
          colorscheme zellner
          s:schemeindex = 1
      elseif s:schemeindex == 1
          colorscheme ron
          s:schemeindex = 2
      ...
      endif
  endfunction
  </code></pre>
  
  <p>My question is, is there a cleaner way to do this?  I'd like to pass a variable to the colorscheme setter function but this doesn't seem to be working.  </p>
  
  <p>Are these scheme names constants and if so how do you assign them to a variable?  </p>
  
  <p>Many thanks.</p>