World: r3wp
[Core] Discuss core issues
older newer | first last |
Geomol 19-Sep-2005 [2104] | 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] | :-) |
Carl 19-Sep-2005 [2137x4] | WRT +- It seemed to me that there was another good reason to give that other meaning. |
It is possible to imagine a "range" or "interval" datatype that may need +- word. | |
Regarding order of arguments: | |
The fundamental rule is an abstraction - it is this: the primary "focus" or "object" of the function or action is first. | |
Geomol 19-Sep-2005 [2141] | Makes sense. |
Carl 19-Sep-2005 [2142x3] | So it is: verb main-object modifiers (or other objs) |
(Rather than direction of evaluation flow or direction of human reading flow.) | |
Shells often use: verb source destination | |
Geomol 19-Sep-2005 [2145] | Carl, I ask, because I'm writing REBOL-versions of some of the old Amiga graphics.library functions. BltBitMap e.g., in the Amiga version, the arguments are: source bitmap, source position, destination bitmap, destination position, mask, etc... Should I turn source and destination around in a REBOL version? |
Carl 19-Sep-2005 [2146] | In that case, when source and destination are of equal weight, then you can apply other rules. |
Geomol 19-Sep-2005 [2147x2] | Or rather: what would you do? |
ok | |
Carl 19-Sep-2005 [2149] | It depends on if you want to keep it true to the Amiga order, or if you are creating something new. |
Geomol 19-Sep-2005 [2150x2] | I plan to let the functions be available to other developers, so I was wondering, what people would feel as the right 'REBOL' way. |
My idea is, that it's new, but Amiga developers should recognize it. | |
Carl 19-Sep-2005 [2152x2] | In the example you show above... it seems good. The source bitmap could be considered the primary object, although the dest is also very important. |
Romano, yes, it is a monster! | |
older newer | first last |