/ 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[("-";0 -1)]'[x;!#x] v:|:'',/segments[("|";-1 0)]'[+x;!#*x] adjust[x]',/connect/(h;v)} adjust:{:[(x .*|y)_in"-|";y;@[y;-1+#y;-1 0+]]} segments:{:[#b:&(~=)':x[0]=" ",y;z{+(x;y)}'@[-1 2#b;_n;x[1]+];()]} connect:{at/[x;,/,/:\:/(!#:)'x]_dv\:()} at:{./[x;k;:;merge . x ./:k:0 1,'y]} merge:{ :[()_in(x;y) ;(x;y) (*x)~*y ;(();(|x),,*|y) (*|x)~*y ;(();x,,*|y) (*x)~*|y ;(y,,*|x;()) (*|x)~*|y ;(y,,*x;()) (x;y)]} a:("sadlkjsadsfljkasf" "asrdlfhsad---hhfa" "assjh---dash|fsas" "saddl|kjsafj|hash" "ask---dhhfsk|fhsf" "sdafhshfsdkjfhshf") lines a