World: r3wp
[Core] Discuss core issues
older newer | first last |
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] | :-) |
older newer | first last |