r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[Core] Discuss core issues

Ladislav
19-Sep-2005
[2087x2]
the NEGATE case: for me the name looks "ugly", I prefer something 
shorter, like +-
(any better idea?)
Geomol
19-Sep-2005
[2089]
Nope, I think your +- is fine and short.
Graham
19-Sep-2005
[2090]
why the need for short function names?  Rebol is a symbolic language, 
so why not use more symbols ? :)
Geomol
19-Sep-2005
[2091x2]
I have a question about the order of arguments to a function. I wanna 
hear your opinion. I'm programming REBOL versions of some of the 
Amiga graphics.library functions. BltMaskRGBMap is a function of 
mine, that will copy part of an image at a certain position and size 
to another image through a mask. It takes the arguments: source image, 
source position, destination image, destination position, size and 
finally mask. That would be the order of the arguments, if it was 
an Amiga graphics.library function. But in REBOL, destination is 
often (always?) first, so maybe I should switch source image and 
position with destination image and position? What do you think would 
be the better way for a REBOL programmer?
Graham, :-) readability maybe?
Graham
19-Sep-2005
[2093x4]
Well, I can't recall the last time I needed to negate something.
Better to have something expressive like 'negate than obscure symbol 
combinations.
Remember that Rebol is meant to be read like english.
memory copy operations are always source -> destination.
Geomol
19-Sep-2005
[2097]
I use negate several places in Canvas, e.g. to calculate the angle 
of an ellipse:

canvas/effect/draw/2: negate arccosine ((u/x * v/x) + (u/y * v/y)) 
/ divisor
Graham
19-Sep-2005
[2098]
that does not +- my argument.
Geomol
19-Sep-2005
[2099]
Graham, are they?
WRITE destination value
destination -- (Type: file url object block)
     value -- (Type: any)
Ladislav
19-Sep-2005
[2100]
NEGATE looks quite ugly to me:
    mod negate n scale
the
    mod +- n scale
looks more readable (to me again)
Geomol
19-Sep-2005
[2101]
But maybe write isn't considered a mem operation, even if destination 
is an object or block? Well, I'm not sure.
Ladislav
19-Sep-2005
[2102]
When there are both ABS and ABSOLUTE, I would prefer to have both 
+- and NEGATE too
Geomol
19-Sep-2005
[2103x2]
CHANGE series value

Change seem to have destination first aswell. Didn't Carl write a 
blog about it at some time?
Some say tomato and some say tomahto
Some say potato and some say 
potahto
Tomato, tomahto, potato, potahto
Oh, let's call the whole 
thing off
Ladislav
19-Sep-2005
[2105]
:-)
Geomol
19-Sep-2005
[2106x2]
I'm sure, Carl wrote something about the order of arguments somewhere, 
but can't find it!?
Like a "function arguments guideline"? Doesn't it ring a bell?
Gabriele
19-Sep-2005
[2108]
Ladislav: the short form for negate was intended to be -, but of 
course that can have its own problems. +- is not very readable to 
me though, as i wouldn't immediately associate it with negate.
Ladislav
19-Sep-2005
[2109x2]
well, there is a character used on calculators:  #"±", but I am not 
able to write it on Czech keyboard
OTOH, - isn't a shortcut for negate. Cf:
    a * negate x
Romano
19-Sep-2005
[2111]
> x: 2
== 2
>> 2 * negate x
== -4
>> 2 * - x
== -4
>> 2 - - x
== 4
>> 2 - negate x
== 4
>>
Ladislav
19-Sep-2005
[2112x2]
right, I picked wrong example, but anyway, - is not a NEGATE shortcut:
>> 5 - 2
== 3
>> 5 negate 2
== -2
Romano
19-Sep-2005
[2114x2]
only in rare case
you need absotutely negate instead of -
Ladislav
19-Sep-2005
[2116]
OK, this case looks rare to you, how about this case:
    add 5 negate x ...
    add 5 - x
Romano
19-Sep-2005
[2117]
rare case , at least for me,  in my experience, and you can always 
use

add 5 ( - x )

which is also more fast
Ladislav
19-Sep-2005
[2118x2]
yes, I can, it just needs parentheses, i.e. may be considered less 
readable (a matter of taste, I think)
e.g. Carl is preferring to use NEGATE instead of parenthesized - 
AFAICT
Geomol
19-Sep-2005
[2120]
Taking the example with add, 5, negate and x, we can write:
add 5 negate x
add 5 (- x)
5 + negate x
5 + (- x)
+ 5 negate x
+ 5 (- x)


and using Ladislav's +-: :negate, you can change negate to +- in 
the above. In REBOL there're really many ways to write even the simplest 
thing.
Romano
19-Sep-2005
[2121]
also:
5 + - 2
Geomol
19-Sep-2005
[2122]
And if x is negative:
5 + - -2
:-)
Romano
19-Sep-2005
[2123]
I think that was a wrong choice to permit the use of op! like action!
Geomol
19-Sep-2005
[2124]
This last one is just not as readable as: 5 + negate x
(I think)
Carl
19-Sep-2005
[2125x3]
This is a *very* tricky thing in REBOL!
It was a difficult decision to allow it.
>> - 10
== -10
>> 5 + - 10
== -5
Geomol
19-Sep-2005
[2128]
It is? :-) It's good to have choices, when it comes to expressing 
yourself.
Carl
19-Sep-2005
[2129]
In fact, supporting unary minus slows down REBOL, because it is a 
single "special case" condition within the evaluation processs.
Geomol
19-Sep-2005
[2130]
oh, hmm a hit on performance may not be so good.
Ladislav
19-Sep-2005
[2131]
what do you personally think about using +- as a shortcut for NEGATE?
Tomc
19-Sep-2005
[2132]
I am not fond of the idea of using plusminus for negate.  I have 
seen tilde used to denote negation and would perfer something visably 
distinct
Geomol
19-Sep-2005
[2133]
Carl, didn't you write some guidelines for the order of arguments 
to functions at some time? That destination arguments should be first, 
source later.
Ladislav
19-Sep-2005
[2134]
tilde is not very accessible using the Czech keyboard
Romano
19-Sep-2005
[2135]
it is the context which select - as
1) unary minus (- 2)
2) subtract op!  (2 - 3)
3) subtract action! (- 2 3)
- is a monster! :-)
Ladislav
19-Sep-2005
[2136]
:-)