World: r4wp
[Rebol School] REBOL School
older newer | first last |
Endo 7-Jun-2013 [2018] | I think you should use cURL binding for R3. |
GrahamC 7-Jun-2013 [2019x3] | @Sujoy .. there some relatively easy fixes to the R3 http protocol to handle this. But .. due to various issues .. they just have not found their way into the binaries :( |
Basically the http protocol sees a redirect eg. from http:// google to https google and complains. | |
or from google.com to www.google.com etc. | |
Sujoy 7-Jun-2013 [2022x3] | thanks graham. endo - looking at cURL...thanks for the pointer |
>> import %./cURL-binding.so ** access error: cannot open: %./cURL-binding.so reason: "not found or not valid" | |
any ideas why? i'm on a amazon linux instance... | |
GrahamC 7-Jun-2013 [2025] | Have you installed all the libraries required for cURL? |
Sujoy 7-Jun-2013 [2026x2] | i think so graham - did a yum install curl |
and i can curl http://google.comfine | |
GrahamC 7-Jun-2013 [2028] | Guess have to ask Kaj then ... I tried this before and worked fine for me |
Sujoy 7-Jun-2013 [2029] | thanks graham...hoping kaj will see this... |
Endo 7-Jun-2013 [2030] | Here you can find some info: http://rebol.esperconsultancy.nl/extensions/cURL/ |
Kees 17-Jul-2013 [2031] | Question about an example from the R3 docs: str: "abcdef" end: find str "d" for s str end 1 [print s] abcdef bcdef cdef def find finds the d at position 4, if I replace end with 4, I get the same result. However: type? end says string! and no pointer If I replace the text in str, end still equals to "def", so it does not point at str any more. Can someone explane this? |
Pekr 17-Jul-2013 [2032x2] | 'find returns the string at certain position, just print 'end, and you will obtain "def" |
your 'for construction looks strange, I am wondering it works :-) | |
Kees 17-Jul-2013 [2034] | It does, both in R2 as in R3, this is from http://www.rebol.com/r3/docs/guide/code-loops.html#section-3 |
DideC 17-Jul-2013 [2035x4] | In Rebol, there is no "pointer" (C like). string!, binary! are series. Series are groups of elements (character, octet) so a word! (like str or end) associated to a serie hold also a position on it. |
You can mak as many sords you want pointing to the same serie at the same or different position. | |
mak=make sords=words (sory) | |
Understanding your cade form the interpreter point o view : | |
Kees 17-Jul-2013 [2039] | How can I find out that the for loop exchanges end with 4, exept for looking it up myself ? |
DideC 17-Jul-2013 [2040] | str: "abcdef" ==> Create a string! in memory, put "abcdef" as its content, create a word! 'str an make it point to its head. |
Pekr 17-Jul-2013 [2041x3] | hmm, I just tried for i 1 str 1, and it screams ... but maybe if given the same type, a string for e.g., maybe it takes their index value? |
>> index? str == 1 >> index? end == 4 | |
you should know, that 'end is just a reference to still the same str, which can be proven, by inserting new element into str .... | |
Kees 17-Jul-2013 [2044] | Yes, index? does it! Thanks Pekr |
DideC 17-Jul-2013 [2045] | end: find str "d" ==> search for "d" in the "abcdef" series in memory, then create a word! 'end that hold the position of "d" in this same serie. |
Pekr 17-Jul-2013 [2046] | >> insert str "0" == "abcdef" >> str == "0abcdef" >> end == "cdef" |
DideC 17-Jul-2013 [2047] | so 'str and 'end just hold different position in a unique string! |
Pekr 17-Jul-2013 [2048] | good point, DideC |
Kees 17-Jul-2013 [2049] | Tried that myself, but no change in end, which Rebol version are you using? |
DideC 17-Jul-2013 [2050] | Then, the 'for loop can work as it's positions in a unique serie! |
Pekr 17-Jul-2013 [2051x3] | 2.7.8 |
Kees - beware - rebol series concept needs really carefull aproach - it caused me a headache when working with series, till I became accustomed to it. And still, sometimes, I use trial and error aproach in console ... | |
Kees - better start with a fresh session, fresh series .... | |
DideC 17-Jul-2013 [2054] | If I replace the text in str, end still equals to def", so it does not point at str any more." How do you replace the text in 'str ? If it's like this: str: "new text" then you have created a new string! in memory and point 'str to this new serie. 'str and 'end does not point anymore the same string! |
Pekr 17-Jul-2013 [2055x3] | try on one line in console: >> str: "abcdef" end: find str "d" print end insert str "0" print end def cdef |
Kees: there are 'replace and 'change functions .... | |
or: >> str/3: #"1" == #"1" >> str == "0a1cdef" | |
DideC 17-Jul-2013 [2058] | to change the content of the "abcdef" string! you create in first place you have to change it in some way. Pekr used 'insert to add a character in the begining. You can change all its content like this: insert clear str "new content" then probe end give " content" So we have acted on the same string in memory. |
Kees 17-Jul-2013 [2059x2] | Yes I see that now |
Thank you both! | |
DideC 17-Jul-2013 [2061] | You may read the series page http://www.rebol.com/docs/core23/rebolcore-6.html |
Kees 17-Jul-2013 [2062] | Thanks DideC, I will |
Pekr 17-Jul-2013 [2063] | Yes, that chapter is kind of ... essential imo :-) |
Geomol 17-Jul-2013 [2064] | If the two words represent the same string (but different position), then this will return true: >> same? head str head end == true |
DideC 17-Jul-2013 [2065] | The key with series programming in Rebol is always "Is this the same serie or a new one ?" Sometimes you want to act on the same. sometimes you want to act on another. FUNDAMENTAL |
Ladislav 17-Jul-2013 [2066x2] | #[[DIdeC str: "abcdef" ==> Create a string! in memory, put "abcdef" as its content, create a word! 'str an make it point to its head. ]] - that is not true, in fact. The proper description is as follows: str: "abcdef" is a Rebol source (or a part of it). That source is first processed by LOAD. LOAD creates the Rebol value representing "abcdef". Also, LOAD does *not* set the 'str value (yet). Later on, when the DO function evaluates the (already LOAD-ed code), it just makes the 'str variable to refer to the string value not creating anything at all (this difference is crucial). |
Dide, you should make sure you understand this difference. | |
older newer | first last |