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

World: r3wp

[Core] Discuss core issues

Janko
21-Jan-2010
[15568]
I will :) .. what is IT ? like the last thing on stack maybe?
BrianH
21-Jan-2010
[15569x2]
REBOL doesn't use a stack machine. IT was a proposal for a function 
to return the result of the conditional expression of the nearest 
enclosing conditional function, basically IF or UNLESS. If we can 
add CASE support too that would be amazing, but it's unlikely without 
IF being native. As it is a mezzanine IF function would need debug 
privileges.
a mezzanine IF function -> a mezzanine IT function
Davide
21-Jan-2010
[15571]
What about a "pipe" operator (as in F#), such that you can write 
something like:
read/lines %files | remove-each x [10 > length? x] | sort 

Would be simplier to read than:
sort remove-each x read %file [10> length? x]


Basically the pipe gives the parameter to the following function 
that is of the same type of the function that precede it.
BTW I think that this could be done with a dialect
BrianH
21-Jan-2010
[15572x2]
REMOVE-EACH has 3 parameters.
To know which parameter to pass along you'd need a dialect with a 
list of supported functions in its code.
Davide
21-Jan-2010
[15574x2]
yes, the second parameter is given by the pipe
but you can see the type of the parameter
BrianH
21-Jan-2010
[15576]
And how would the pipe know to send to the second parameter, when 
the first and third also allow block parameters? REMOVE-EACH is just 
another function - the meaning of its parameters is specific to that 
function.
Davide
21-Jan-2010
[15577]
isn't the first parameter of remove-each a word ?
BrianH
21-Jan-2010
[15578x2]
There's a lot of tricks that you can do with compiled languages with 
fixed function definitions that you can't do as easily in REBOL without 
whole program analysis.
>> spec-of :remove-each
== [

    {Removes values for each block that returns true. Returns remove 
    count. (Modifies)}

    'word [word! block!] "Word or block of words to set each time (local)"
    data [series!] "The series to traverse"
    body [block!] "Block to evaluate (return TRUE to remove)"
]
Davide
21-Jan-2010
[15580]
ops, wrong example ;-)
BrianH
21-Jan-2010
[15581]
It just happens that that function value is assigned to that word. 
With the next call of the piped code it might be a different function.
Janko
21-Jan-2010
[15582x2]
hehe, this is exactly where curry would be needed :))

read/lines %files | curry remove-each [ x _ [10 > length? x] ] | 
sort
for functions that take just one example you can make it yourself 
pretty simpy.. I made it last week for processing tome fixed width 
data file ..
BrianH
21-Jan-2010
[15584x2]
People say "do it in a dialect" like those come for free. There's 
dialect processing overhead, issues of when the arguments are processed, 
decisions about whether there are keywords or not. To get an idea 
about the real overhead of doing it in a dialect, look at the source 
of APPLY or MAP-EACH in R2. Both are compiled dialects.
If there's any way to make your code execute in one of the native 
dialects, do it, it's worth it.
Janko
21-Jan-2010
[15586]
data: parse-fixed-width-lines read/lines %PO.txt [
	vat-incl: 4 [ trim empty? not ]
	vat-num: 9 trim
	...
]

this func is used to execute [ trim empty? not ] with a value.. which 
is similar to pipe or stack lang with only 1 level deep stack :)) 

stream-through: func [ fs d /local x acc ] [ accumulate x acc copy 
[] fs [ do compose [ (x) d ] ] ]
Gregg
23-Jan-2010
[15587]
Janko, Ladislav did the most extensive CURRY I know of, though Joel 
Neely also did one, and a number of us have rolled simple versions 
here and there. 

http://www.fm.tul.cz/~ladislav/rebol/curry.r
Henrik
23-Jan-2010
[15588x2]
Is there any solid way to find which chars are illegal in a specific 
file system?
Never mind. Using some tables here.
Geomol
23-Jan-2010
[15590]
Henrik, I've used info here: http://en.wikipedia.org/wiki/Filename
Do you have better info?
Henrik
23-Jan-2010
[15591x2]
http://support.grouplogic.com/?p=1607

I used this one.
but I see yours is better
Terry
23-Jan-2010
[15593x2]
Any gotchas when posting xml via read/cutom [post "<my xml>"]  ?
I'm getting a "REST method is not defined" response.
Maxim
23-Jan-2010
[15595]
that will depend how the server wants the post data...
Terry
23-Jan-2010
[15596]
maybe some kind of REST header needs to be sent as well?
Maxim
23-Jan-2010
[15597x6]
not an expert on REST interfaces... though I am using one with a 
server right now...
are you sure your URL is built accoring to the server's specs?
also might want to make sure the content-type is set to: "application/xml"
(in the header)
IIRC you also need to name your post data...

complete example, something like:

header: [Content-Type: "application/xml"]
name: "get-info"

read/custom reduce ['post rejoin [ "value=" your-xml-data "&"] 'header 
header]
oops 


read/custom reduce ['post rejoin [ name "=" your-xml-data "&"] 'header 
header]
Terry
24-Jan-2010
[15603]
name "=" your-xml-data ??
Maxim
24-Jan-2010
[15604x2]
like I said it depends on the server but most servers expect a form-like 
post data.
where name is the name of the variable which stores the xml and your-xml-data 
is, obviously, your xml file content.


you might also need to url-encode the xml-data so it gets read properly 
at the other end.
Terry
24-Jan-2010
[15606]
of xml?
Maxim
24-Jan-2010
[15607x4]
eh not sure what that refers to, but I guess you refer to "which 
stores the xml" ?
name is the argument name, like you would specify in a form.
(or a url, if it where a get)
the api of the server might also tell you to put some values in the 
URL to specify the function you are accessing on the server, some 
prefer that in the post data, its all very site specific.
Terry
24-Jan-2010
[15611x4]
yeah.. i don't think i have enough info i the api
GET works fine
it asks for the function be the first xml tag ie: <restmethod>
and then chokes.. im thinking it the rest header is lacking somehow.. 
but if it's asking for just xml, where would I shove it? I would 
think the rebol custom 'post' would do that.. but yeah, probably 
needs the Content-Type: "application/xml" .. ?

It's this kind of verbose nonsense that should have been left behind 
in the last century.
Maxim
24-Jan-2010
[15615]
so you should probably have to give a name to the parameter which 
is followed by the xml data  ex:

postdata=<restmethod><sometag>value</sometag></restmethod>
Terry
24-Jan-2010
[15616x2]
it doesn't specify
I can try with SOAP api provided, but i get the feeling it's going 
to be just as much of a time sink.