how compute product?



 For computing products we can define command prd(f,n,n1,n2):
(%i1) load(solve_rec)$
(%i2) prd(f,n,n1,n2):=block([g,h,at,k],define(h(n),f),
solve_rec(g[n]=g[n-1]*h(n),g[n],g[n1]=h(n1)),
define(at(k),rhs(%%)),factor(at(n2)))$
 Examples:
(%i3) prod(3*k+1,k,1,n)=prd(3*k+1,k,1,n);
prod(2*k+b,k,1,n)=prd(2*k+b,k,1,n);
prod((1-1/k),k,2,n)=prd((1-1/k),k,2,n);
prod((1-1/k^2),k,2,n)=prd((1-1/k^2),k,2,n);
prod((1-1/k^2),k,2,inf)=limit(prd((1-1/k^2),k,2,n),n,inf);
prod((k^3-1)/(k^3+1),k,2,n)=prd((k^3-1)/(k^3+1),k,2,n);
(%o3) product(3*k+1,k,1,n)=(3^(n+1)*gamma((3*n+4)/3))/gamma(1/3)
(%o4) product(2*k+b,k,1,n)=((b+2)*2^(n-1)*gamma((2*n+b+2)/2))/gamma((b+4)/2)
(%o5) product(1-1/k,k,2,n)=1/n
(%o6) product(1-1/k^2,k,2,n)=(n+1)/(2*n)
(%o7) product(1-1/k^2,k,2,inf)=1/2
(%o8) product((k^3-1)/(k^3+1),k,2,n)=(2*(n^2+n+1))/(3*n*(n+1))
 But wrong:
(%i9) prod(sin(k*%pi/n),k,1,n-1)=prd(sin(k*%pi/n),k,1,n-1);
(%o9) product(sin((%pi*k)/n),k,1,n-1)=0
 It must be :
(%i10) prod(sin(k*%pi/n),k,1,n-1)=2^(1-n)*n;
(%o10) product(sin((%pi*k)/n),k,1,n-1)=n*2^(1-n)
 How compute this product with Maxima ?
How compute other products with Maxima ?
 see  http://www.wolframalpha.com/                  input: prod(sin(k*pi/n),k,1,n-1)