Re: RE: RE: simple question
- To: mathgroup at smc.vnet.net
- Subject: [mg77298] Re: [mg77161] RE: [mg77113] RE: [mg77099] simple question
- From: DrMajorBob <drmajorbob at bigfoot.com>
- Date: Wed, 6 Jun 2007 07:21:11 -0400 (EDT)
- References: <200706031015.GAA03008@smc.vnet.net> <17807603.1180947440083.JavaMail.root@m35> <op.ttd8jwb7qu6oor@monster.ma.dl.cox.net> <200706051035.GAA00766@smc.vnet.net> <20010005.1181048860294.JavaMail.root@m35> <op.ttgliznnqu6oor@monster.ma.dl.cox.net> <32049855.1181087006092.JavaMail.root@m35>
- Reply-to: drmajorbob at bigfoot.com
I "never" use comments within the code. I use text-cells to explain
things, and I keep code snippets small enough to need no internal
explanation (I think). The names we give functions and variables can help
quite a bit with that.
On the other hand, I'm not writing huge applications that other
programmers need to maintain in future. If I were, I might have to
reconsider.
But... on the gripping hand, as it were... I doubt that ever works very
well, no matter how the code is documented.
Bobby
On Tue, 05 Jun 2007 18:42:15 -0500, Andrzej Kozlowski <akoz at mimuw.edu.pl>
wrote:
>
> On 6 Jun 2007, at 02:29, DrMajorBob wrote:
>
>> Isn't that a powerful argument against converting to traditional form
>> -- ever? -- since the same thing happens when the original code is
>> Sin[x], which converts to sin(x) and then becomes sin x
>> (multiplication) when pasted back into Mathematica?
>
> I would not say "ever" because I use Traditional Form for output (and
> often for Input) in all the classes I teach and in everything I print,
> but certianly you should never distribute or share with others any
> notebooks (not to mention packages) in Traditional Form. Even for
> archival purposes it is better to store notebooks in Standard Form,
> since that is much less likely to be subject to changes in future
> releases of Mathematica.
>
> However, the point of my observation about comments was a bit different:
> I think comments whether in notebooks or in packages should be
> completely "inactive" and never change at all when you perform
> evaluations or change format of cells etc. As far as I know only text
> strings have this property. With notebook interface there is another
> possiblity: using Text cells for comments, but then it is better to make
> them non-editable so they can't be accidently converted to input cells
> and end up getting evaluated. But again, this will work only if you stay
> within Mathematica and use the notebook interface.
>
> There is also another problem which affects Ingolf style Comments and
> unfortunately also string comments. Compare these two definitions:
>
> f[x_] := Sin[a x(*a is a parameter*) ]
> g[x_] := Sin[a x ; Comment[a is a parameter] ]
> h[x_] := Sin[a x; "a is a parameter"]
>
> {f[Pi], g[Pi], h[Pi]}
>
> {Sin[a*Pi], Sin[Comment[a^2*is*parameter]], Sin["a is a parameter"]}
>
> Of course you can avoid this but I think it demonstrates that the
> proposed solutions are all much less convenient than having proper
> comments.
>
>
> Andrzej Kozlowski
>
>
>
>
>
>>
>> Bobby
>>
>> On Tue, 05 Jun 2007 08:06:15 -0500, Andrzej Kozlowski
>> <akoz at mimuw.edu.pl> wrote:
>>
>>> Try the folowing. First enter
>>>
>>> Comment[" This is my comment. "]
>>>
>>> into na input cell. Now use the Convert To menu in the Cell menu to
>>> convert the cell into Traditional Form. Next, copy and paste into some
>>> text editor (it could even be another copy of Mathematica running on
>>> the same machine) and then copy it again an paste it back into a new
>>> cell in (the original) Mathematica. Now evalaute the cell. You will
>>> probably now agree that "This is my comment." is preferable.
>>>
>>> Andrzej Kozlowski
>>>
>>>
>>> On 5 Jun 2007, at 19:35, Ingolf Dahl wrote:
>>>
>>>> Yes, from execution point of view,
>>>>
>>>> "This is my comment."
>>>>
>>>> works as well as
>>>>
>>>> Comment[" This is my comment. "];
>>>>
>>>> but comments are meant for human readers of the program, and I think
>>>> that my
>>>> proposal is better for informing the reader that the comment really
>>>> is a
>>>> comment and nothing else. It is also easier for a metaprogram to find,
>>>> delete, print, color or translate all such comments inside a program.
>>>> Another way is of course to decorate the comment strings in some way,
>>>> for
>>>> instance
>>>>
>>>> "(***** This is my comment. *****)" .
>>>>
>>>> Matter of taste...
>>>> About not capitalizing user-defined functions, I think that that is a
>>>> good
>>>> rule, if some exceptions are allowed. For instance, package authors
>>>> usually
>>>> seem to capitalize their "user-defined" functions. And if I suggest
>>>> this
>>>> natural use of the word "Comment", it is implicitly an appeal to
>>>> Wolfram not
>>>> to use the same word for something else. If many users adopted the =
>>>> practice,
>>>> they could even include it as an alternative in the Help.
>>>>
>>>> Best regards
>>>>
>>>> Ingolf Dahl
>>>>
>>>>> -----Original Message-----
>>>>> From: DrMajorBob [mailto:drmajorbob at bigfoot.com]
>>>>> Sent: den 4 juni 2007 12:54
>>>>> To: Ingolf Dahl; mathgroup at smc.vnet.net
>>>>> Subject: Re: [mg77113] RE: [mg77099] simple question
>>>>>
>>>>> I believe "This is my comment." works just as well, without
>>>>> the comment function. (I never capitalize user-defined functions.)
>>>>>
>>>>> Bobby
>>>>>
>>>>> On Mon, 04 Jun 2007 02:46:35 -0500, Ingolf Dahl
>>>>> <ingolf.dahl at telia.com>
>>>>> wrote:
>>>>>
>>>>>> Hi Dimitris,
>>>>>> I cite from mg64218 (Feb 7, 2006), thread "Notebooks,
>>>>> packages, cells,
>>>>>> and literate programming":
>>>>>>
>>>>>> "One alternative way to enter inline comments, if you anyway want
>>>>>> that, is to wrap them up in a ordinary Mathematica function in this
>>>>>> way:
>>>>>>
>>>>>> Comment[" This is my comment. "];
>>>>>>
>>>>>> There usually are any number of places in the code where
>>>>> you could add
>>>>>> comments in this way. If you have not defined the function Comment,
>>>>>> the statement will not be evaluated. Such comments are not
>>>>> removed by
>>>>>> Shift-Ctrl-N or Shift-Ctrl-I.
>>>>>> Of course I must here also remind that the button
>>>>> "CopyAsInputForm" in
>>>>>> my SetFaceAndFont Palette preserves (* *) comments by
>>>>> converting them
>>>>>> into the suggested alternative. (See
>>>>>> http://web.telia.com/~u31815170/Mathematica/)"
>>>>>>
>>>>>> The palette is not updated to version 6 yet, since I just have had
>>>>>> Mathematica 6 available a few days, but this feature seems to be
>>>>>> functioning.
>>>>>>
>>>>>> Best regards
>>>>>>
>>>>>> Ingolf Dahl
>>>>>>
>>>>>>> -----Original Message-----
>>>>>>> From: dimitris [mailto:dimmechan at yahoo.com]
>>>>>>> Sent: den 3 juni 2007 12:15
>>>>>>> To: mathgroup at smc.vnet.net
>>>>>>> Subject: [mg77099] simple question
>>>>>>>
>>>>>>> Hi.
>>>>>>>
>>>>>>> I have a simple question but I can't find any relevant.
>>>>>>> Suppose a user-defined function with comments [that is
>>>>>>> (*...*) structures] added.
>>>>>>>
>>>>>>> Let for example
>>>>>>>
>>>>>>> \!\(Nint[g_ (*function*) , n_Integer, {x_, a_, b_} (*
>>>>>>> the\ variable\ and\ the\ limits\
>>>>>>> of\ integration*) , opts___ (*set\ possible\
>>>>> options\ for\ \
>>>>>>> NIntegrate*) ] := NIntegrate[Evaluate[g\^Range[n]], {x, a, b},
>>>>>>> opts]\)
>>>>>>>
>>>>>>> The code has been copy/paste in StandardForm.
>>>>>>> Let me convert it to InputForm. After selecting the cell and press
>>>>>>> Shift+Ctrl+I, I get
>>>>>>>
>>>>>>> In[1]:=
>>>>>>> Nint[g_, n_Integer, {x_, a_, b_}, opts___] :=
>>>>>>> NIntegrate[Evaluate[g^Range[n]], {x, a, b}, opts]
>>>>>>>
>>>>>>> That is, the comments during the conversion have been lost.
>>>>>>>
>>>>>>> Any ideas to "fix" this situation?
>>>>>>>
>>>>>>> Dimitris
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> DrMajorBob at bigfoot.com
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>>
>> --DrMajorBob at bigfoot.com
>
>
--
DrMajorBob at bigfoot.com
- References:
- simple question
- From: dimitris <dimmechan@yahoo.com>
- RE: RE: simple question
- From: "Ingolf Dahl" <ingolf.dahl@telia.com>
- simple question