/ http://groups.google.com/groups?hl=en&lr=&threadm=qfBid.3718%24Gm6.1347%40newsread3.news.atl.earthlink.net&prev=/groups%3Fhl%3Den%26lr%3D%26group%3Dcomp.lang.functional lines:{ h:,/segments["-"]'[x;!#x] v:|:'',/segments["|"]'[+x;!#*x] adjust[x]',/connect/(h;v)} adjust:{:[(x .*|y)_in"-|";y;@[y;-1+#y;-1 0+]]} segments:{:[#b:&(~=)':x=" ",y;z{+(x;y)}'@[-1 2#b;_n;0 -1+];()]} connect:{at/[x;,/,/:\:/(!#:)'x]_dv\:()} at:{./[x;k;:;merge . x ./:k:0 1,'y]} merge:{ :[()_in(x;y) ;(x;y) (*x)~(*y)-1 0 ;(();(|x),,*|y) (*|x)~(*y)-1 0 ;(();x,,*|y) (*x)~(*|y)+1 0 ;(.[y;(-1+#y;0);1+],,*|x;()) (*|x)~(*|y)+1 0 ;(.[y;(-1+#y;0);1+],,*x;()) (x;y)]} a:("sadlkjsadsfljkasf" "asrdlfhsad---hhfa" "assjh---dash|fsas" "saddl|kjsafj|hash" "ask---dhhfsk|fhsf" "sdafhshfsdkjfhshf") lines a