Printing an alist of plists with cons format

Heime <[email protected]>
Newsgroups gmane.emacs.help
Message-ID <-jrNYLApecnlXBd9WNg2nJBZVDx4tNkc_2TTXEgOFPjS6zNsVwZvRsaAKW9BE1w-X_84yV7bp46RUSxFZbHHlsxQ2u-gs_NzwZvmw18gq-U=@protonmail.com>
Have made a two level plist 

(defvar mpl-length
  '(:cm  (:10pt 283.46456 :pt 28.34646 :mm 10 :in 0.39370 :ft 0.03281)
    :in  (:10pt 720 :pt 72 :mm 25.4 :cm 2.54 :ft 0.083333)
    :ft  (:10pt 8640 :pt 864 :mm 304.8 :cm 30.48 :in 12)))

And wanted to convert it to a different form: making the top-level plist
into an alist.

(defun mpl-plist-to-alist (plist)
  "Convert a nested two-level plist (:u1 plist1 :u2 plist2 ...)
to a plist nested in an alist '((u1 . plist1) (u2 . plist2) ...)."

  (let (alist)
    (while plist
      (let ((unit   (pop plist))
            (plist  (pop plist)))
        (push (cons unit plist) alist)))
    (nreverse alist)))


This gives 

((:cm :10pt 283.46456 :pt 28.34646 :mm 10 :in 0.3937 :ft 0.03281) 
 (:in :10pt 720 :pt 72 :mm 25.4 :cm 2.54 :ft 0.083333) 
 (:ft :10pt 8640 :pt 864 :mm 304.8 :cm 30.48 :in 12))


How can I get the new list being printed as

((:cm . (:10pt 283.46456 :pt 28.34646 :mm 10 :in 0.3937 :ft 0.03281))
 (:in . (:10pt 720 :pt 72 :mm 25.4 :cm 2.54 :ft 0.083333))
 (:ft . (:10pt 8640 :pt 864 :mm 304.8 :cm 30.48 :in 12)))
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.