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

World: r3wp

[!REBOL3]

BrianH
2-Aug-2010
[4232]
Maxim, nothing in REBOL corresponds to a closure, though the closure! 
type is closer than other function types, and many other languages 
call something similar to that a closure too. We don't have contexts 
(though "dialects" are close). Neither FUNC nor FUNCT build real 
functions, but they both build what other imperative languages incorrectly 
call functions, so people won't get confused.
Graham
2-Aug-2010
[4233]
The value of funct over lfunct is that it sorts in proximity alphabetically
Ladislav
2-Aug-2010
[4234]
yes, that is why I think it is quite reasonable
Graham
2-Aug-2010
[4235]
lfunct = Lfunc
Andreas
2-Aug-2010
[4236x3]
Which is also its most prominent shortcoming, as readers pattern-match 
better at the beginning of a word then at the end.
So LFUNC is visually more different to FUNC then FUNCT is.
than*
Graham
2-Aug-2010
[4239]
depends on whether you want to stress the similarities or differences
Maxim
2-Aug-2010
[4240]
I also prefer LFUNC the L actually has meaning in that word.  the 
mind unwraps the L to "Local" automatically.   while FUNCT really 
is obscure everytime you read it.
BrianH
2-Aug-2010
[4241]
I have two reasons why I like keeping FUNC the way it is:

- FUNC is the simplest function-creating function, so giving it the 
shortest name seems appropriate.

- As a rule, we prefer to not rename old functions and then give 
their old names to new functions. That would be user-hostile.
Maxim
2-Aug-2010
[4242]
I agree, func is the basis of just about every script out there.
Andreas
2-Aug-2010
[4243]
But never forget bug#666.
BrianH
2-Aug-2010
[4244x3]
FUNCT doesn't just gather locals ("lfunc"), it also optionally binds 
the function body to an object ("friend-func" to adapt the C++ term.
Andreas, I also don't forget bug#667.
The rule in bug#667: "We are trying to keep our breaks in compatibility 
of legacy functions limited to semantic changes, removed or changed 
options and such, and only when necessary (see #666). Some legacy 
functions have been removed altogether. None have been renamed yet 
- except as in the example above, with the old name still there."
Andreas
2-Aug-2010
[4247]
Thanks, but we are discussing hypothetically here.
Maxim
2-Aug-2010
[4248x2]
yes, but its a refinement, and even then, it still acts "locally" 
within that object (I'm assuming its using function locals on words 
in didn't bind to).
in = it
Andreas
2-Aug-2010
[4250]
(And FUNCT/WITH would warrant a discussion on it's own.)
Ladislav
2-Aug-2010
[4251]
I posted #1640 just today related to it
Andreas
2-Aug-2010
[4252]
But given the hypothetical blank slate, I'd still agree with Brian's 
first argument, namely the using FUNC as name for the simplest common 
case is sensible.
Maxim
2-Aug-2010
[4253]
why not call it GOSUB   ;-)
Graham
2-Aug-2010
[4254]
Of course nothing to stop you from creating new names ...

F: :func
LF: :funct
BrianH
2-Aug-2010
[4255x2]
Yeah, Ladislav, I just answered that ticket.
See bug#934 for the behavior that you rediscovered in FUNCT/with. 
It is in the function docs strings that show up in its help.
Ladislav
2-Aug-2010
[4257]
OK, nevermind, it is a detail anyway
BrianH
2-Aug-2010
[4258]
Yeah. We really gave that and every other detail of the behavior 
of FUNCT a great deal of thought. If only we had given that much 
thought to the name: FUNCT is sort of the default name - Carl made 
a blog about it, and then the discussion never went anywhere, so 
we stuck with the initial name because it was better than the other 
suggestions.
Graham
2-Aug-2010
[4259]
which blog was it?
BrianH
2-Aug-2010
[4260]
Having trouble finding it. The function is more than 2 years old, 
and first came about during the first closed GUI development project.
Graham
2-Aug-2010
[4261]
http://www.rebol.net/cgi-bin/r3blog.r?view=0144
BrianH
2-Aug-2010
[4262]
Note that I was in favor of FUNX rather than FUNCT :)
Maxim
2-Aug-2010
[4263]
well, the pretty clear concensus was that funct was the least popular 
name by far   :-)
Graham
2-Aug-2010
[4264x2]
I too was in favour of funx
So we have Gregg to blame!
BrianH
2-Aug-2010
[4266]
I find the typo quality of FUNX to be a downside now. It is harder 
to type FUNCT by accident when trying to type FUNC.
Graham
2-Aug-2010
[4267]
what typo quality?  because x and c are adjacent on the keyboard?
BrianH
2-Aug-2010
[4268x2]
Then again, maybe others aren't having the same trouble with typos 
that I have been having lately (had to correct 6 in this sentence).
Graham, yes, that.
Graham
2-Aug-2010
[4270]
If you're a touch typist, x and c use different fingers ... so it 
doesn't matter if they're adjaxent or not
Maxim
2-Aug-2010
[4271]
I was about to say that
BrianH
2-Aug-2010
[4272]
I am physically incapable of touch typing.
Graham
2-Aug-2010
[4273]
we are going for the rest of the world!
Maxim
2-Aug-2010
[4274]
funq
funk
Andreas
2-Aug-2010
[4275]
mm, funx would be nice :)
BrianH
2-Aug-2010
[4276]
Maxim, that is why I liked "funx" :)
Andreas
2-Aug-2010
[4277]
but it has such a pluralist sound to it :)
Graham
2-Aug-2010
[4278]
x implies a break ... from past behaviours
Maxim
2-Aug-2010
[4279]
I feel that when reading code, funx  sticks out very well from the 
rest, and it doesn't have that strange esoteric feel which funct 
 has.
BrianH
2-Aug-2010
[4280]
Func extreme!
Gregg
2-Aug-2010
[4281]
I am only partially to blame. I think, even then, I expressed concern 
about the beauty of the word funct. That said, I don't think funx, 
funq, or lfunc are any better. I believe a number of people were 
there and really tried to find a good name.