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

proc spunk {l} {
    set flds [dict create]
    foreach {f v} $l {
	if {[llength $v]==1} {
	    dict lappend flds $f $v
	} else {
	    dict lappend flds $f {*}$v
	}
    }
    return $flds
}

dict get [spunk {-a {"abc"} -x 1 -z 3 -a {2 3}}] -a; # to-be: {"abc"} 2 3; ok

set x {-a {"abc"} -x 1 -z 3}
expr {[dict get [spunk {-a {"abc"} -x 1 -z 3}] -a] eq [dict get $x -a]}; # not OK: "abc" vs. {"abc"}