Date: Jan 24, 2013 1:17 AM
Author: David Park
Subject: Re: goto label, no loop, Mathematica 6

Your code example seems quite confused and not very specific as to what
constitutes the model.

First, you can't use Switch as a variable since it is a Mathematica
function, which you might actually use.

I'm not quite certain about the use of Goto but I don't think you could use
it to transfer between notebook cells. You have to use it within a single
cell, or within a compound statement, or within a Module as is shown on the
Help page for Goto.

Goto may have a few uses but is not generally a good programming method. You
could try something like this:

evaluateModel[modelType_] :=
(If[modelType == 2, Goto[model2]];
Print["Evaluating Model 1"];
Print["Evaluating Model 2"];
Label[end]; "Return the model");

But a far better method would be:

evaluateModel[modelType_] :=
1, Print["Evaluating Model 1"]; "Return the model",
2, Print["Evaluating Model 2"]; "Return the model"]

David Park

From: bob []

I'd like to write down my model (several cells) and afterwards implement
another version of that model. But as I use the same names for variables,
Mathematica has to "forget" former assignments.

A solution woul be something like that (which I don't know how to do it in
Mathematica unfortunately):

Switch=1 (*a variable that can be set to 1 or 2: tell matehmatica to read
only Part 1 (or 2)*)
if Switch=2 goto label_switch2
Model Part 1 (several cells)
MOdel Part 2 (several cells)

But if I'm right, goto is usually used for loops, so that the order is label
- goto; but not as required here: goto label

Thanks for any help!!