World: r3wp
[Core] Discuss core issues
older newer | first last |
Izkata 19-May-2009 [13792x2] | I would definitely prefer a native fold-type function over maximum-of and minimum-of |
which I think was mentioned under the name accumulate? | |
BrianH 19-May-2009 [13794] | We tried, but that has definitely been declared an R3/Plus function, not native. Making ACCUMLATE? native wouldn't help much - the mezzanine version is really fast already. You won't be able to get functional language speed even from a native because that requires compiler support, and REBOL doesn't have a compiler at all. |
Izkata 19-May-2009 [13795] | Okay, good to know. Glad it's in, at least |
BrianH 19-May-2009 [13796x2] | R3/Plus has a low barrier to entry, because it will be modular. People can just not include the modules they don't need. Conversely, there will be a high standard for inclusion as mezzanine or built-in native code because you won't as easily be able to remove it if you don't need it. Many R2 mezzanines, and even some natives won't make the cut. |
The plugin architecture will make it less necessary to include native code you don't need. R3/Plus lets us say yes without bloating the core. R3 is going to be much tighter than R2. | |
Graham 19-May-2009 [13798] | Such as ? I'd had to have an cgi script running and find that functions I need aren't included. |
BrianH 19-May-2009 [13799] | Use the needs header to load the modules you need and you can be sure they'll be included. As for which functions will be mezzanine, that is still in question for many functions. If you want to make sure that your favorites are there, oparticipate in the discussion. |
Graham 19-May-2009 [13800x2] | page: read/custom [ scheme: 'http host: "twitter.com" target: "direct_messages/new.xml" user: "my-twitter-id" pass: "mypassword" ] [ POST "text=This was also sent from a Rebol&user=synapse_emr" ] This sends a private tweet to a user ... not clear from the API docs what the call is to just tweet ... anyone know? |
ooops ... wrong group. | |
Maxim 19-May-2009 [13802] | this is easy to figure out using firebug ;-) redirect the html page to a server you have cheyenne running and save out the whole http request, you will have url and post data :-) |
Graham 19-May-2009 [13803x2] | just reinstall wireshark |
But there is a twitter restful api ... just can't find it there. Must be blind. | |
Janko 19-May-2009 [13805] | too bad accumulate is not in the core, I totally ditched python for any further work because guido v.r. removed the basic (quite poor) functional constructs it had |
Steeve 19-May-2009 [13806] | If that so, most of existing mezzanines should be fired into external modules. Because i use mezzanines only to test some ideas. But if have to do the "real work", then i use only natives. Don't ask why, it's obvious. |
Graham 19-May-2009 [13807] | Don''t you end up then writing your own mezzanines? |
Janko 19-May-2009 [13808] | to me one of great beauties of rebol is that all stuff are expressions like "either" and by so composable .. and that you don't need explicit return statements.. two of big features that I think aid more functional (not imperative) design of programs... |
Steeve 19-May-2009 [13809x2] | but they they have to be strictly adapted for their purposes, so i remove code related to needless use cases. |
speed is a priority especially with Rebol which can be really slow if you don't take care | |
Janko 19-May-2009 [13811x4] | functional: reduce [ "hi " (either is-male? gender [ "boy" ] [ "girl" ]) , "how are you?" ] vs imperativeish: a: "hi " either is-male? gender [ append a "boy" ] [ append a "girl" ] append a " How are you?" a |
so although I got impression from Carl's blogposts that he thinks rebol should be practical vs. functional , I think a lot of it's power and elegance and practicality come from functional aspects of it (just expressing my opinion) | |
( ok, my memory was bad, Carl only said rebol is not Pure Functional PL , which is totally different thing and I don't want it to be pure functional :) ) | |
http://www.rebol.com/article/0206.html | |
Steeve 19-May-2009 [13815x2] | i think the power of rebol comes from the big amount of small code schemes so that by combining only some of them you can do all you want. It's the main difference with other functional languages. The amount of natives schemes and data types. |
Adding more and more natives schemes (like matrix operations on series) is the way to get Rebol more and more powerful | |
Maxim 19-May-2009 [13817x3] | the unification of series management is one of the major sources of code reduction in rebol. |
the other is the fact that series are mutable, and many functions edit the input series directly. | |
even more so in R3 :-) | |
Graham 19-May-2009 [13820] | This works ... posting a message is actually called updating your status! page: read/custom [ scheme: 'http host: "twitter.com" target: "statuses/update.xml" user: "my-twitter-id" pass: "mypassword" ] [ POST "status=Playing with REBOL and the Twitter API" ] |
Steeve 19-May-2009 [13821x2] | interesting, can you post other messages than "status=" ? |
(never used twitter) | |
Graham 19-May-2009 [13823] | http://apiwiki.twitter.com/Twitter-API-Documentation |
Henrik 22-May-2009 [13824] | is there a quick way to tell if an integer overflows? I'm missing an overflow? function: overflow? 632479375863785946758934675892 == true |
BrianH 22-May-2009 [13825] | int-overflow?: func [n [number!]] [error? try [to-integer n]] |
Henrik 22-May-2009 [13826] | hmm.. yes, thanks. |
Maxim 22-May-2009 [13827] | unfortunately this might not work... to-integer sometimes returns a decimal... unlesss its been fixed for 2.7.6 |
BrianH 22-May-2009 [13828] | It should work - always return integer! or error! - if the input is a number! (as specified in the type test of the argument. TO-INTEGER would only have that problem with string input. |
Maxim 22-May-2009 [13829] | aaah yes... missed the input type ... sorry. |
Graham 26-May-2009 [13830x2] | any good reason apart from the fact that data is a block that this is not allowed? forskip data: [ 1 2 3 4 ] 2 [ ] |
but you have to do: data: [ 1 2 3 4 ] forskip data 2 [ ... ] | |
Maxim 26-May-2009 [13832x2] | cause the word is being used as the index. |
probably cause in the time frame of evaluation the set word happens after the forskip hits it. | |
Graham 26-May-2009 [13834] | Is that a good reason? :) |
Maxim 26-May-2009 [13835] | the assignment I mean. |
Izkata 27-May-2009 [13836] | USAGE: FORSKIP 'word skip-num body Yep, the set-word gets assign to word, the [1 2 3 4] gets assigned to skip-num, and 2 gets assigned to body, because of the lit-word argument in forskip |
Graham 27-May-2009 [13837x2] | Maybe this should be changed so that a default word is used instead ... |
if a lit-word is not supplied as an argument but a block | |
Izkata 27-May-2009 [13839] | Perhaps split the iteration word argument from the data argument, like 'foreach has? |
Graham 27-May-2009 [13840] | seems a reasonable suggestion. |
BrianH 27-May-2009 [13841] | FORALL and FORSKIP are faster than FOREACH in R3 because they don't have a local word that requires a BIND/copy of the code. |
older newer | first last |