nouns, verbs, why?



Dear All,

My one cent suggestion to the problem you
address is introducing a re-write sin(x)
function as a noun function. It is possible
with Maxima and verbify it later.

Maxima 5.16.3 http://maxima.sourceforge.net
(%i1) declare(fs,noun);
(%o1)                                done
(%i2) fs(x):=(sin(x));
(%o2)                          ''fs(x) := sin(x)
(%i3) fs(0);
(%o3)                                fs(0)
(%i4) gs:verbify(fs);
(%o4)                                 fs
(%i5) gs(0);
(%o5)                                  0


Not sure, if this helps.

Regards,

Mehmet Suzen

Harald Geyer wrote:
> Hi Richard,
> 
> thanks for working on this topic. I think it is very important.
> 
> Part of the problem seems to be, that people fear that the distinction
> between nouns and verbs is too complicated to explain to users. I
> have argued against that in the past, perhaps
> https://sourceforge.net/tracker/?func=detail&aid=902290&group_id=4933&atid=104933
> (SF bug #902290) is the best example. - Unfortunatly I never got around
> to write any code to try it.
> 
> I want to take the opportunity to point out that this didactical problem
> could be mostly avoided by just distinguishing between nouns and verbs
> very boldly - something like using uppercase for nouns and lower case
> for verbs.
> 
> 
> Why do you actually want to talk with a CAS about sin(0)=0?
> I guess because the days when we tought new facts to CAS by writting
> obscure code in some low level language are over. Nowadays we want
> to type facts in the CASs own expression language - but other might
> have different reasons...
> 
> Finally let me share a small experiment (it's nothing fancy, but the
> point is: I consider myself a rather experienced user and in some cases
> I had no idea what would be the output before actually trying):
> 
> (%i3) ?print(f);
> $F
> (%o3) f
> 
> (%i8) ?print(f(a,b));
> (($F SIMP) $A $B)
> (%o8) f(a,b)
> 
> (%i9) ?print("+"(a,b));
> ((MPLUS SIMP) $A $B)
> (%o9) b+a
> 
> (%i11) ?print(nounify(f)(a,b));
> ((%F SIMP) $A $B)
> (%o11) 'f(a,b)
> 
> (%i12) ?print(nounify("+")(a,b));
> ((%MPLUS SIMP) $A $B)
> (%o12) '?mplus(a,b)
> 
> (%i13) ?print(nounify(""));
> %
> (%o13) \
> 
> (%i14) ?print(verbify(nounify("")));
> $
> (%o14) \
> 
> (%i15) ?print(verbify(nounify("+")));
> MPLUS
> (%o15) ?mplus
> 
> (%i16) ?print(verbify("+"));
> MPLUS
> (%o16) ?mplus
> 
> (%i17) ?print(sin(x));
> ((%SIN SIMP) $X)
> (%o17) sin(x)
> 
> (%i18) ?print(verbify(sin)(x));
> ((%SIN SIMP) $X)
> (%o18) sin(x)
> 
> (%i19) ?print(nounify(sin)(x));
> ((%SIN SIMP) $X)
> (%o19) sin(x)
> 
> (%i20) ?print(sin);
> %SIN
> (%o20) sin
> 
> (%i21) ?print(verbify(sin));
> $SIN
> (%o21) sin
> 
> (%i22) ?print(nounify(sin));
> %SIN
> (%o22) sin
> 
> 
> It's mostly consistent but still strange and it's often not clear
> what's the point of the behaviour.
> 
> Harald
> 
>> A draft of a paper describing the situation is on 
>> http://www.cs.berkeley.edu/~fateman/papers/nounverbmac.pdf
>>
>> If you have suggestions on how to fill the (substantial) holes in it, I 
>> would be happy to include good stuff and insert
>> your name as co-author.
>> RJF
>>
>> _______________________________________________
>> Maxima mailing list
>> Maxima at math.utexas.edu
>> http://www.math.utexas.edu/mailman/listinfo/maxima
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima