I would like a function that computes Cartesian product of two sets z=(Tuples@{#1,#2}), and computes the number of elements in this set(list) Length@z which have a x elements in #1 and y elements in #2 (ie x y == numbers of elements in z).

As function output I want to receive a list that has as first of last element x*y and the next\previous "element" as z.

{{x*y}, z} or {z,{x*y}}

And does it exist a way to produce "multi-data out" like

out[a] = foo1  
out[a+1] = foo2

Generally, what I should use if I would like to see intermediate calculations (and don't see another), if I don't want use Length[%] on function result and don't want have it in function result (as in question one). Something like:

    output1=.. //intermediate calculations (for example Length[z] in quest.1)
    output2=... //intermediate calculations
    output[a]= ... //result

Obviously, I tried to use Print, and Join within Module, Something like

  c = {};
  a = Tuples@{#1, #2} &; 

It doesn't work, but I think it could provide some information about what I want. I would be grateful for any information, maybe some articles I've missed.

  • $\begingroup$ Can you give us a sample input and output? That will help, as I can't quite understand what you want from your write-up, although I have an idea. $\endgroup$ – march Mar 11 '16 at 16:44
  • $\begingroup$ Ok, let's try begin with small pieces. x = {1,2,3}; y={5,6,7} ; z=Tuples[{x,y}] output = {Lenght[z], z } <- (variant 1) , (variant 2) -> output = {z} , output2= Lenght[z] (in this variant output2 works like side effect of calculations). Generally speaking, in my mind twisting question how to write complicated funct in single piece of text, like main function in C, carrying some operation hiden, some has printed but just like slide-effect. $\endgroup$ – Gelios Mar 11 '16 at 18:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.