Mathematica 3.0 code to create Catalan polygon diagrams (sorry, but I wrote it to teach myself how to use the new ReplaceList function, not to be readable):

```(* The corners of an n-gon... *)

poly[n_] := Table[{Cos[t], Sin[t]}, {t, 0, 1.999 Pi, 2 Pi/n}]

(* A test to see if two indexed corners can be opposites in an n-gon,
in other words a test that they're not adjacent... *)

test[{i_, j_}, n_] := 1 < Mod[Abs[i - j], n] < n - 1;

(* All the possible pairs of opposite corners for an n-gon. *)

opposites[n_]:=
Select[Union[
Sort /@ Flatten[Outer[List, Range[n], Range[n]], 1]],
test[#, n]&];

(* A silly trick to get patterns of the form

{___,a,___,b,___} -> {a, b}. *)

myrule[n_] :=
With[{patts = Table[Unique["e"], {n}]},
Rule[Prepend[
Flatten[Map[{Pattern[#, Blank[]], BlankNullSequence[]}&, patts]],
BlankNullSequence[]], patts]];

(* For example...

myrule[4]

{___,e1_,___,e2_,___,e3_,___,e4_,___} -> {e1,e2,e3,e4} *)

(* A test to see if two diagonals of a polygon intersect... *)

test2[{___,{x_,y_},___,{a_,b_},___} /; (x<a<y<b || a<x<b<y)] := True;

(* Put it all together... Once you understand this, you'll be as bad at
programming as I am. *)

showCatalan[n_]:=

Module[{bg, corners, thelines, poly = N@poly[n]},
bg = Line[Append[poly, First[poly]]];
> Transfer interrupted! ```