Hi,

> => means "take the thing on the left and substitute it for the first
> parameter of the function on the right, so 
I thought it meant "The first parameter on the right will be subsituted
with the thing on the left"?

> ('weasels') => replace('weasels','mustelids')  works
> 
> ('weasels','badgers') => replace('weasels','mustelids')  DOES NOT work
> 
> This is because a one-item sequence can be treated as the single string
> value the first parameter of replace() requires, but a
> greater-then-one-item sequence can't be.  (This one gives you "item
> expected, sequence found" if you try it from the GUI.)

The following is quite similar to the 'piping' mechanism in R.
I'll start experimenting with it.

Thanx,
Ben
> ! means "take each item of the sequence on the left and pass it to the
> thing on the right in turn", so
> 
> ('weasels','badgers') ! replace(.,'weasels','mustelids')  works.
> 
> (note that replace() got its first parameter back as the context item
> dot.)
> 
> so if you take
> 
> => array:for-each(function($idf) {array:append($idf,math:log($count div 
> $idf[2]) )})
> 
> and replace it with 
> ! array:for-each(.,function($idf) {array:append($idf,math:log($count div 
> $idf[2]) )})
> 
> (note the context-item dot!)
> 
> you should at least get a different error message.
> 
> -- Graydon
> 

Reply via email to