Re: Functional programming puzzle

*To*: mathgroup at christensen.cybernetics.net*Subject*: [mg1861] Re: [mg1821] Functional programming puzzle*From*: Allan Hayes <hay%haystack at christensen.cybernetics.net>*Date*: Wed, 9 Aug 1995 22:38:06 -0400

"Wm. Martin McClain" <wmm at chem.wayne.edu> wrote in [mg1821] Functional programming puzzle Dear functional programers: > 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. > ................... Martin: Outer has an optional, and apparently undocumented, final parameter for setting the level at which it operates. Hence: ptList = {{1,1,2},{2,1,3},{1,3,2}}; Rij[a_,b_]:=Sqrt[(a-b).(a-b)] Outer[Rij,ptList,ptList,1]//MatrixForm 0 Sqrt[2] 2 Sqrt[2] 0 Sqrt[6] 2 Sqrt[6] 0 Allan Hayes De Montfort University Leicester hay at haystack.demon.co.uk