As I had explained in this other post, one can use Array[]
to implement (finite sections of) infinite matrix products. For illustration purposes, I will demonstrate with Bill's first example.
gasketProduct[m_Integer?Positive, k_Integer, prec_: MachinePrecision] :=
Array[Function[n, N[With[{s1 = Sin[? (1/6 - (k + 1/m)/3^n)]},
{{1/2 + (-1)^k s1, -Sqrt[3] Sin[? (k + 1/m)/3^n]},
{-s1, 1/2 - (-1)^k s1}}], prec]],
Ceiling[20 + RealExponent[1 + Abs[k], m]], 1, Dot][[1, 1]]
base2cof[m_Integer?Positive, n_Integer?Positive, t_] :=
Sum[gasketProduct[m, k] Exp[I ? t (k + 1/m)]/(? (k + 1/m)),
{k, -n, n}, Method -> "Procedural"]
Just to be a little different, I'll use a pentagon as a motif:
ParametricPlot[ReIm[base2cof[5, 30, t]], {t, 0, 4 ?}, PlotPoints -> 105]

ParametricPlot[ReIm[base2cof[5, 120, t]], {t, 0, 4 ?}, MaxRecursion -> 1, PlotPoints -> 905]
