Argument blocks, value: and -infinity.
richards at turing.scs.carleton.ca
Wed Sep 23 19:12:40 UTC 1992
I am having difficulty finding my copy of the Self manual,
and Danny Epstein isn't to be found, so I can't borrow his. I thought
I was beyond having to look up syntax :-)
How do I declare a multi-argument block?
blahMethod: withArg SpecialBlock: myBlock = (
myBlock value: 10 Value: 20.
I want to call it with:
blahMethod: myArg SpecialBlock: [ | :firstArg :secondArg |
" do neat things with the arguments "
Actually, I haven't written the body of the blahMethod: yet.
I am getting syntax errors on the call...
It is possible that a redesign would get rid of this problem, but
I doubt it, since I want to have a generic function that does something
intelligent to a property of a sub-object. Specifically, it expands
or contracts one of the dimensions, the dimension being changed
should be specified by the *enclosing* object, and *changes*
for one case (the y dimension has an up from baseline and down
from baseline component).
Maybe I'm just too much of a LISP hacker :-)
Also, I created an object that I call a `boundedNum' that I use
for the dimensions. It is an integer that can grow (shrink) to a certain
maximum (minimum) size, but no greater (smaller). Some boundedNum's
have only one bound, or zero bounds --- i.e. one of the bounds is
infinity. I was pleased to type `infinity' and have it work. I
tried -infinity, but that got Self 1.3 upset. Okay, negInfinity:
0 - infinity, and it is happy. (it even prints as "-Inf") However,
once I've create negInfinity, any subsequent code loaded fails.
Does this happen with 2.0/2.1, or is this particular to my
p.s: I have done too much work under 1.3 to switch to 2.0 at this
junction. Probably later. R James Noble's X stuff works quite well.
I understand that the 2.0 X stuff uses bitmaps?
More information about the Self-interest