On Mon, Feb 5, 2018 at 6:44 PM,  <[email protected]> wrote:
> Dear Fricas developers
>
>
>
> (I'm and not sure that this is the good forum to address my question, but I
> cannot find any other.)
>

This is the forum for discussion of both users and developers.

>
> First, thanks you all for your engagement to keep this great project alive!
>
>
>
> I'm a researcher in theoretical & mathematical physics with some knowledge
> (at different levels) of Mathematica (the current standard in th phys),
> Sympy, Maxima and Haskell. (No Lisp/Boot/Spad/Aldor alas!)
>

That's an interesting skill set.  May I ask how did you get in touch
with FriCAS?

>
> In these days I'm trying to learn Fricas and I'm playing with the online
> sandbox.
>

I'd say install FriCAS on a local machine would provide a more
responsive interface.  Do you have any problems on installation?

>
> (As a sad aside, I must say that the current status of fricas installation &
> language documentation is "sub-obtimal" (I can give more details if you're
> curious).

Please do.  We are aware of some of these problems, but some progress
are kind of slow.

> One must be much much more motivated than an average cas-beginner
> not to run away, to stay & progress. Of course this is not a blame, I
> understand that these tasks are tedious & heavily time consuming, and I see
> that there is some promising effort in progress.)
>
>
>
> The first thing I like to understand about a CAS is how evaluation works
> ...so, unable to find this topic on the documentation, I did some trials...
> And here's my question:
>

Which documentation?  This is in chapter 5 section 1 of the user guide,
"Immediate and Delayed Assignments"

https://kfp.bitbucket.io/fricas-ug/section-5.1.html

>
> a:=b;
>
> b:=1;
>
> [a,eval(a),simplify(a)]
>
>
>
> returns [b, b,b].
>
>
>
> How can I force the interpreter in using the information that VALUE(b) = 1
> in expressions containing a?
>

One way is to use delayed assignment:

a == b
b == 1
a  -- returns 1

>
> This one-level evaluation behavior is similar to the one found in masyma,
> but there there is ev(a, infeval) which does the job and one gets 1.
>
> On the other hand Mathematica uses fixed-point infinite evaluation by
> default so it returns 1 for a.
>

The "fixed-point infinite evaluation" sounds like delayed assignment
I mentioned above.

BTW, is this possible in Sympy?

>
> The answer:
>
> eval(a, 'b = b)
>
> returns 1 but it is not satisfactory to me because it requires the apriori
> knowledge of all the variables involved in Value (a).
>

>From your description, what you want is essentially 'eval' in the sense of
a dynamic language (like Lisp), which is difficult or useless in a strongly
typed language.  It can be implemented in interpreter by tricks and hacks,
but I don't think it's useful.  I think this mechanism violates static/lexical
scope, and can cause great confusion. For example, I have seen many
posts on maxima-discuss about the confusion caused by 'ev'.

>
> Is there a better way to get 1 from a, or maybe not having it is a feature
> of the language?
>
>
>
> Thanks for your time
>
>
>
> ric

-- 
You received this message because you are subscribed to the Google Groups 
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/fricas-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to