[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Axiom-developer] Re: 1: %
From: |
Ralf Hemmecke |
Subject: |
[Axiom-developer] Re: 1: % |
Date: |
Wed, 22 Feb 2006 11:57:10 +0100 |
User-agent: |
Thunderbird 1.5 (X11/20051201) |
On 02/22/2006 12:21 AM, Gabriel Dos Reis wrote:
Ralf Hemmecke <address@hidden> writes:
| > | The problem is the "1: %" as a constant (not a nullary function).
| > The distinction is largely syntactic, not fundamental.
|
| I was once told that in Aldor the difference between
| a: %
| and
| b: () -> %
| is that
| b() will run a program which might side-effect other things or even
| return something different each time.
expanding on my preivous answer, have a look at the section 5.2 os the
Aldor user guide on literal forming -- you can define your own function
to interpret a string literal as a constant.
I knew about this Literal stuff before...
http://lists.gnu.org/archive/html/axiom-developer/2006-02/msg00154.html
But as you see, if you write a domain that has a function
string: Literal -> %,
it is a function and that means that "1" and "1" need not give identical
values.
The following program prints 11 and 12.
-- aldor -laldor -grun domaintest.as
--BEGIN domaintest.as
#include "aldor"
DomainTest: with {
integer: Literal -> %;
coerce: % -> Integer;
} == add {
Rep == Integer;
local n: Integer := 0;
integer(l: Literal): % == {
i: Integer := integer(l)$Integer;
free n := n + 1;
per (i + n);
}
coerce(x: %): Integer == rep x;
}
main(): () == {
import from TextWriter, Character, Integer;
a: DomainTest := 10;
b: DomainTest := 10;
stdout << (a::Integer) << newline;
stdout << (b::Integer) << newline;
}
main();
- Re: [Axiom-developer] about Expression Integer, (continued)
- Re: [Axiom-developer] about Expression Integer, Ralf Hemmecke, 2006/02/20
- Re: [Axiom-developer] about Expression Integer, Gabriel Dos Reis, 2006/02/20
- Re: [Axiom-developer] about Expression Integer, Ralf Hemmecke, 2006/02/20
- RE: [Axiom-developer] about Expression Integer, Bill Page, 2006/02/20
- Re: [Axiom-developer] about Expression Integer, Gabriel Dos Reis, 2006/02/20
- Re: [Axiom-developer] about Expression Integer, Ralf Hemmecke, 2006/02/21
- Re: [Axiom-developer] about Expression Integer, Gabriel Dos Reis, 2006/02/21
- [Axiom-developer] 1: %, Ralf Hemmecke, 2006/02/21
- [Axiom-developer] Re: 1: %, Gabriel Dos Reis, 2006/02/21
- [Axiom-developer] Re: 1: %, Gabriel Dos Reis, 2006/02/21
- [Axiom-developer] Re: 1: %,
Ralf Hemmecke <=
- [Axiom-developer] Re: 1: %, Gabriel Dos Reis, 2006/02/23
- [Axiom-developer] Re: 1: %, Ralf Hemmecke, 2006/02/22
- [Axiom-developer] Re: 1: %, Gabriel Dos Reis, 2006/02/23
- [Axiom-developer] Re: 1: %, Ralf Hemmecke, 2006/02/22
- Re: [Axiom-developer] about Expression Integer, Ralf Hemmecke, 2006/02/21
- Re: [Axiom-developer] about Expression Integer, Gabriel Dos Reis, 2006/02/20
- Re: [Axiom-developer] about Expression Integer, Ralf Hemmecke, 2006/02/21
- Re: [Axiom-developer] about Expression Integer, Gabriel Dos Reis, 2006/02/21
- RE: [Axiom-developer] about Expression Integer, Bill Page, 2006/02/20
- Re: [Axiom-developer] about Expression Integer, Ralf Hemmecke, 2006/02/21