[net.micro.amiga] shopping frustration

bart@alice.UucP (Bart N. Locanthi) (03/28/86)

yesterday a friend and i ventured to the local amiga dealer, a computer
factory store on route 46 in totowa, new jersey.  we were disappointed,
partly because of the dealer in that
1) he had no manuals beside the basic how-to and amigabasic sections in
   one binder
2) he couldn't, or wouldn't, tell us what accessories we could buy for it
3) the C development disk had nothing on it so far as we could tell
4) the dealer didn't have an amigados manual so we didn't get very far
   typing at the machine.

one of the demos we did try was amigalisp 1.0.  it at least could handle
(cons 'a 'b), but had an infinite recursive loop when we attempted to
execute (fib 2) (or (fib N) for N>1 for that matter) with fib defined
as

(df fib (n) (cond ((zerop n) 1)
	 	  ((eq n 1) 1)
		  (t (plus (fib (sub1 n)) (fib (difference n 2))))))

the machine we tried had the expansion memory.

is our experience typical?  if so, how can commodore really expect to
sell these things even at $795?

breuel@h-sc1.UUCP (thomas breuel) (03/30/86)

|one of the demos we did try was amigalisp 1.0.  it at least could handle
|(cons 'a 'b), but had an infinite recursive loop when we attempted to
|execute (fib 2) (or (fib N) for N>1 for that matter) with fib defined
|as
| 
|(df fib (n) (cond ((zerop n) 1)
|                  ((eq n 1) 1)
|                  (t (plus (fib (sub1 n)) (fib (difference n 2))))))

I have not played with AmigaLisp, but you should probably write
'(equal n 1)' rather than '(eq n 1)'. Most Lisp implementations
only guarantee atoms to be unique (your code would, however, work
in Franz Lisp -- by what I would call a coincidence :-).

Altogether, the problem is probably with your code, not with the
Lisp interpreter.

|yesterday a friend and i ventured to the local amiga dealer, a computer
|factory store on route 46 in totowa, new jersey.  we were disappointed,
|partly because of the dealer in that
|1) he had no manuals beside the basic how-to and amigabasic sections in
|   one binder
|2) he couldn't, or wouldn't, tell us what accessories we could buy for it
|3) the C development disk had nothing on it so far as we could tell
|4) the dealer didn't have an amigados manual so we didn't get very far
|   typing at the machine.
| 
|is our experience typical?  if so, how can commodore really expect to
|sell these things even at $795?

Don't generalise from an individual dealer to all other dealers, the
company, or the product. There are several options open to you:

	-- find a different dealer
	-- buy a copy of AmigaWorld (for the ads, not the articles)
	-- buy a copy of Amazing Computing
	-- contact the companies you find in the ads of the above magazines
	-- contact Commodore directly

To sum up: no, your experience is not typical. Nevertheless, for more
technical information, your dealer is probably the wrong person to
talk to anyhow. For product information, the best source is
magazines specialising in the Amiga.

					Good luck,
					Thomas.

bart@alice.UucP (Bart N. Locanthi) (04/02/86)

||one of the demos we did try was amigalisp 1.0.  it at least could handle
||(cons 'a 'b), but had an infinite recursive loop when we attempted to
||execute (fib 2) (or (fib N) for N>1 for that matter) with fib defined
||as
|| 
||(df fib (n) (cond ((zerop n) 1)
||                  ((eq n 1) 1)
||                  (t (plus (fib (sub1 n)) (fib (difference n 2))))))
|
|I have not played with AmigaLisp, but you should probably write
|'(equal n 1)' rather than '(eq n 1)'. Most Lisp implementations
|only guarantee atoms to be unique (your code would, however, work
|in Franz Lisp -- by what I would call a coincidence :-).

until a few days ago i had not encountered a lisp in which eq did not
work on numbers.  of maclisp, interlisp, uci-lisp, franz lisp, etc, and
amigalisp, i would say that amigalisp is broken.

will someone out there who has amigalisp verify whether or not this indeed
is the problem?

breuel@h-sc1.UUCP (thomas breuel) (04/04/86)

|||one of the demos we did try was amigalisp 1.0.  it at least could handle
|||(cons 'a 'b), but had an infinite recursive loop when we attempted to
|||execute (fib 2) (or (fib N) for N>1 for that matter) with fib defined
|||as
||| 
|||(df fib (n) (cond ((zerop n) 1)
|||                  ((eq n 1) 1)
|||                  (t (plus (fib (sub1 n)) (fib (difference n 2))))))
||
||I have not played with AmigaLisp, but you should probably write
||'(equal n 1)' rather than '(eq n 1)'. Most Lisp implementations
||only guarantee atoms to be unique (your code would, however, work
||in Franz Lisp -- by what I would call a coincidence :-).
|
|until a few days ago i had not encountered a lisp in which eq did not
|work on numbers.  of maclisp, interlisp, uci-lisp, franz lisp, etc, and
|amigalisp, i would say that amigalisp is broken.
|
|will someone out there who has amigalisp verify whether or not this indeed
|is the problem?

Well, if you type to your favourite, friendly Franz Lisp interpreter:

> (eq 99999 99999)

you'll get a 'nil' as an answer (at least I do, and that is what
the documentation says should happen).

The reason is that for the sake of efficiency, small integers
in Franz are represented uniquely. If I recall correcly, the
manual points out something like: if you know what you are doing,
you can use 'eq' on numbers, otherwise use 'equal'. I would
give you the same advice.

'eq' exists for two purposes: two compare symbols (NOT atoms),
and to check whether two objects are identical (i.e. eq :-).
For numbers, you don't want to know whether they are identical,
(i.e. whether they are located at the same memory location)
since you rarely alter the value of a number by setting the
number itself! You want to know whether they are equal. Therefore,
use 'equal'. It is also portable, and works.

Altogether, AMIGALisp is NOT broken if (eq 1 1) fails.

					Thomas.