On Wed, Jul 16, 2008 at 10:25 PM, Yixin Cao
<[EMAIL PROTECTED]> wrote:
> Howdy,
>
>
> (1) -> a:INT
> Type:
> Void
> (2) -> a:=1.1
>
> Cannot convert right-hand side of assignment
> 1.1
>
> to an object of the type Integer of the left-hand side.
> (2) -> b:=2
>
> (2) 2
> Type:
> PositiveInteger
> (7) -> b:=%i
>
> (7) %i
> Type: Complex
> Integer
>
>
> This is a strange behavior when I am new to the OpenAxiom system. A variable
> declared with some type
> will never change, this is clear. But but the variables without type
> declaration can change type at any time
> is a little confusing.
>
> I know this has reason rooted in i-object.boot, and the $e of interpreter
> will show this:
The `reason' is not rooted in the code -- the code only implements a
reason (i.e. an intent).
The short answer is: a variable declaration is not the same as binding
a symbol to a value.
As you know by now, there is a difference between a variable
declaration and an `untyped'
variable definition.
A variable declaration is a promise that a variable will always
designate an object
whose value belongs to the declared type. And that promise cannot be broken.
An untyped variable definition introduces an a symbol in the
evaluation environment to
designate a value -- the symbol itself is never declared of being of a
specific type.
Since the since is no declared, there is no violation of promise. In
fact, this is
how people do `symbolic manipulation'.
>
> (8) -> SAY(_$e$Lisp)$Lisp
> ((((b (value (Complex (Integer)) WRAPPED 0 . 1)) (% (value (Complex
> (Integer)) WRAPPED 0 . 1)) (a (mode Integer)))))
I would have said
currentEnv()
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
open-axiom-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/open-axiom-devel