[EMAIL PROTECTED] wrote: > Here's a example of Expressiveness of a Language. > > The following is Mathematica code that generates all possible > equations of one term involving trig function. (tweak the funList and > nesting level to define what ?all possible? means. if nesting level is > 2, it takes about 20 minutes and returns a list of 2876 terms on a > 2004 personal computer. > > << DiscreteMath`Combinatorica` > funList = {Sin, Tan, Power[#, -1] &}; > Nest[Module[{li = #}, > (Union[#, SameTest -> (Module[{arg1 = #1, arg2 = #2}, > If[(*both expression contains both x and y*) > And @@ (((((StringMatchQ[#, "*x*"] && > StringMatchQ[#, "*y*"]) &)@ > [EMAIL PROTECTED]) &) /@ {arg1, arg2}) > , SameQ[arg1, arg2 /. {x -> y, y -> x}], > SameQ[arg1, arg2]] > ] &)] &)@ > [EMAIL PROTECTED]@(Table[(Times @@ # &) /@ KSubsets[#, i], {i, 1, > 2}] &)@[EMAIL PROTECTED], [EMAIL PROTECTED] &, funList, li]} > ] &, {x, y}, 1]; > Select[%, ([EMAIL PROTECTED], "*x*"] && > [EMAIL PROTECTED], "*y*"]) &]
This does not even start running in Mathematica 6, let alone produce any correct results. The first line was deprecated some time ago. I don't know what is wrong with the rest of your program but it takes a while to produce the empty list. > The problem is this: generate a list of all possible math expressions > using the following combination and rules: > > ? the math expression involves both x and y. (must have both present) > ? you can use any of the 6 trig functions (you must, since the goal is > to create all possibilities) > ? The binary operations you can use are multiply, divide. (no addition > or substraction, since that can make the result 2 terms) > ? a sub-expression (such as x or y) can be replaced by a more > complicated one. (i.e. you can nest) Then your program should produce an infinite number of terms, e.g. x, Sin[x], Sin[Sin[x]], ... > The above i wrote in 2002. If there are requests, i'll translate the > above code into emacs lisp. A correct definition of what the program is supposed to do with a correct implementation in any language would be a good start. If you are trying to do what I think you are trying to do then this is a trivial recursive definition in just about any language and it does not take advantage of anything specific to Mathematica anyway. -- Dr Jon D Harrop, Flying Frog Consultancy http://www.ffconsultancy.com/products/?u -- http://mail.python.org/mailman/listinfo/python-list