On Mon, Dec 08, 2025 at 08:13:49AM -0800, Sid Andal wrote:
<snip>
 
> However, the same program fails when var X is replaced with T
> in GetMatx():
> 
> 
> tttt.input:
> 
> F := PF 5
> 
> (B1, B2, B3) : Vector F
> 
> SetVecs() ==
>    free B1, B2, B3
>    B1 := [1, 2, 3]
>    B2 := [2, 3, 1]
>    B3 := [3, 1, 2]
>    output("")
> 
> GetMatx() ==
>    free B1, B2, B3
>    T : Matrix F
>    T := matrix [B1, B2, B3]
>    (output("T:", T); output(""))
>    (output("Rank:", rank(T)); output(""))
> 
> SetVecs()
> GetMatx()
> 
> 
> With following errors:
>

<snip>

> ; caught ERROR:
> ;   COMMON-LISP:T names a defined constant, and cannot be used in LET.
> ;
> ; compilation unit finished
> ;   caught 1 ERROR condition
> 
>    >> System error:
>    Execution of a form compiled with errors.

<snip>

> That seems a little strange....

This is unfortunate limitation of current interpreter: names of local
variables are used as given, which may cause conflicts with predefined
name.  Actually, problem affect many names (even some global ones),
simply T is most likely to appear by accident.

Fixing this seem to require substantial change to interpreter code,
which I plan to do in the future, but it takes time and there
are more urgent things to do.

-- 
                              Waldek Hebisch

-- 
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 view this discussion visit 
https://groups.google.com/d/msgid/fricas-devel/aUfwj4HNoMPgmt70%40fricas.org.

Reply via email to