annoying Mathematica 3.0 behavior
- To: mathgroup@smc.vnet.net
- Subject: [mg10736] annoying Mathematica 3.0 behavior
- From: calvitti@glenn.ces.cwru.edu
- Date: Mon, 2 Feb 1998 00:44:29 -0500
- Organization: Case Western Reserve University
I'm running Mathematica 3.0 under NT 4.
1) To debug code, I insert Print[] statements within functions which I
comment out using (* ... *) when not needed (yes, I also comment out
the semicolons). However, the next time I open that notebook and such a
function is evaluated Mathematica flags it with syntax errors. When I
remove the (* ... *), the functions evaluate correctly, as they do
*even* after I reinsert the (* ... *). Clearly, I want to avoid doing
that everytime I open a notebook. Am I doing something wrong or is this
a known bug in 3.0?
2) Is there an elegant way for a default (or optional) argument to a
function to take a value which depends on another argument to the same
function if it's not explicitly passed? e.g. in "foo" I would like to
have "a" default to Length[lst].
foo[lst_List, a_Integer : Length[lst_]] := lst[[a]]
but foo[{5,6,7,8}] returns "List", which implies that it's defaulting
"a" to 0. I've tried definding an optional argument with
Options[foo] = {a -> Length[lst_]}
with no luck....Obviously, I can pass a : Infinity and set it
appropriately within the functions' body after a quick check, but it
doesn't seem like an elegant solution.
Thanks for the help.
+---------------------------------+
| Alan Calvitti |
| Control Engineering |
| Case Western Reserve University |
+---------------------------------+