vardef bincoeff(expr n, k) = save ?; ? := (1 for i=(max(k,n-k)+1) upto n: * i endfor ) / (1 for i=2 upto min(k, n-k): * i endfor); ? enddef; def pascaltr expr c = string s_; for i := 0 upto (c-1): s_ := "" for k=0 upto (c-i): & " " endfor; s_ := s_ for k=0 upto i: & decimal(bincoeff(i,k)) & " " if bincoeff(i,k)<9: & " " fi endfor; message s_; endfor enddef; pascaltr(4); end