title: elisp function help (learning elisp): popup list of servers, prompt for user input, then execute function to connect
body: <p>Caveat: 
  I am a NOOB in the elisp world. I am looking for advice where to start to look for directed self education materials with the below query. I am open to: "this seems to be the silliest/hardest/overly complicated/non-lispy way of doing this why not try x". Thank you for all of the help.</p>
  
  <p>Query:
  I would like to implement something similar to a shell script I use but in elisp. I can share the shell script if that makes my question clearer. I am using emacs to connect to remote servers using plink on windows. I have a number of functions like so e.g.:</p>
  
  <pre><code>(defun server ()
    (setq explicit-shell-file-name "/bin/bash")
    (interactive)
    (let ((default-directory "/plink:un@ip:~/"))
      (shell)))
  </code></pre>
  
  <p>I would like to combine all of these into an Emacs command <code>connect</code>. I would like to call <code>M-x connect</code>, have a popup list of possible connections, enter the connection number into the minibuffer, and then execute the appropriate function based on the minibuffer input.</p>