Functional programming puzzle

*To*: mathgroup at christensen.cybernetics.net*Subject*: [mg1825] Functional programming puzzle*From*: Count Dracula <lk3a at kelvin.seas.virginia.edu>*Date*: Thu, 3 Aug 1995 23:52:28 -0400*Organization*: University of Virginia

In Article: 1079 of comp.soft-sys.math.mathematica "Wm. Martin McClain" <wmm at chem.wayne.edu> wrote: > Let ptList = {{1,1,2},{2,1,3},{1,3,2}}; > I want a matrix of distances between the points in ptList. > Any human would think you could get it with > Rij[a_,b_]:=Sqrt[(a-b).(a-b)] > followed by > Outer[Rij,ptList,ptList] > But Mathematica returns a mess, because Outer seems > to Flatten the ptList before running the outer > product loops. This will work if you give Outer a Level specification: dist[x_List] := Sqrt[Map[#1 . #1 & , Outer[Subtract, x, x, 1], {2}]] ltest = {{1,1,2},{2,1,3},{1,3,2}} In[4]:= dist[ltest]//MatrixForm Out[4]//MatrixForm= 0 Sqrt[2] 2 Sqrt[2] 0 Sqrt[6] 2 Sqrt[6] 0 -- Levent Kitis lk3a at cars.mech.virginia.edu lk3a at kelvin.seas.virginia.edu University of Virginia Department of Mechanical, Aerospace, and Nuclear Engineering