Re: Newbie-type question: structured data types in Mathematica?
- To: mathgroup at smc.vnet.net
- Subject: [mg37537] Re: Newbie-type question: structured data types in Mathematica?
- From: Tom Burton <tburton at brahea.com>
- Date: Mon, 4 Nov 2002 02:43:55 -0500 (EST)
- References: <aq2l8n$g10$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
On 11/3/02 12:03 AM, in article aq2l8n$g10$1 at smc.vnet.net, "David Park" <djmp at earthlink.net> wrote: > CircleType = {{_, _}, _}; > ConstructCircle[position : {_, _}, radius_] := {position, radius} > GetRadius[circle : CircleType] := Part[circle, 2] > GetPosition[circle : CircleType] := Part[circle, 1] > Attributes[SetRadius] = {HoldFirst}; > SetRadius[circle_][radius_] := (circle = ReplacePart[circle, radius, 2];) It's easy to type a little stronger: circleType = circle[{_, _}, _]; constructCircle[position : {_, _}, radius_] := circle[position, radius]; positionGet[circle : circleType] := Part[circle, 1]; radiusGet[circle:circleType] := Part[circle, 2]; positionSet[circle_][ position:{_,_}] := (circle = ReplacePart[circle, position, 1]) radiusSet[circle_][radius_] := (circle = ReplacePart[circle, radius, 2]); (Attributes[#] = {HoldFirst})&/@{positionSet,radiusSet}; I avoid capitalizing circle to prevent shadowing (clashing names with) context System`. Tom Burton