Posted to tcl by mr_calvin at Tue Aug 01 12:43:45 GMT 2017view raw

  1. proc spunk {l} {
  2. set flds [dict create]
  3. foreach {f v} $l {
  4. if {[llength $v]==1} {
  5. dict lappend flds $f $v
  6. } else {
  7. dict lappend flds $f {*}$v
  8. }
  9. }
  10. return $flds
  11. }
  12.  
  13. dict get [spunk {-a {"abc"} -x 1 -z 3 -a {2 3}}] -a; # to-be: {"abc"} 2 3; ok
  14.  
  15. set x {-a {"abc"} -x 1 -z 3}
  16. expr {[dict get [spunk {-a {"abc"} -x 1 -z 3}] -a] eq [dict get $x -a]}; # not OK: "abc" vs. {"abc"}
  17.