Thank you to everyone for your replies. I have taken the advice of the
first response and am trying both, starting with q.
On tacit programming, i think i have found it is possible in q, and it does
have currying. They have default (implicit?) arguments x and y to refer to
the first and second args in a monad/dyadic function. similar to j's [
and ] operators?
So by my reckoning this code below is an example of tacit average in q?
q) is the prompt...
q)average:{ (sum x) % count x}
q)average[2 3 4]
3f
q)average[2 3 4 5]
3.5
hope my other three questions are as easy to figure out...
On 17 January 2012 00:59, Boyko Bantchev <[email protected]> wrote:
> On 16 January 2012 18:11, Kim Kuen Tang <[email protected]> wrote:
> >
> > I tried to calculate the mean in K using tacit programming.
> > (+/%# ) !10
> > But it is not working. Can you show how to program it in K?
>
> There are no forks like +/%# in K. Instead, you can do:
> avg: %/(+/;#:)@\:
> avg 2 3 7
> 4.0
> avg' (2 3 7; 5 6)
> 4 5.5
>
> Or, you can define a `fork' yourself:
> fork: {[f;g;h;x] g[f[x];h[x]]}
> which itself is non-tacit, but allows tacit definitions such as:
> avg: fork[+/;%;#:;]
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm